Clever-Excel-Forum

Normale Version: Fehler der Methode "Select" des Objektes "Range"
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Moin zusammen,

ich hab eine Excel Tabelle als Trainingstagebuch.
Auf dem ersten Tabellenblatt gibt es eine Übersicht und darauf folgen 12 Tabellenblätter für jeden Monat.
Auf der Übersicht gibt es Schaltflächen. Wenn auf eine Schaltfläche geklickt wird, öffnet sich das Tabellenblatt in dem das aktuelle Datum zu finden ist und ein UserForum öffnet sich.
Geschrieben hab ich das in 2017 und es lief einwandfrei. Seit dem Jahreswechsel kommt leider der Fehler

Laufzeitfehler "1004"
Fehler der Methode "Select" des Objekts "Range".


Anbei das Makro:


Sub Schwimmen()
Sheets("Jan").Select
Sheets("Feb").Select
Sheets("Mrz").Select
Sheets("Apr").Select
Sheets("Mai").Select
Sheets("Jun").Select
Sheets("Jul").Select
Sheets("Aug").Select
Sheets("Sep").Select
Sheets("Okt").Select
Sheets("Nov").Select
Sheets("Dez").Select
Dim rngC As Range
For Each rngC In Worksheets("Jan").Range("A6:A36")
If rngC.Value = Date Then rngC.Offset(0, 3).Select
Next
For Each rngC In Worksheets("Feb").Range("A6:A34")
If rngC.Value = Date Then rngC.Offset(0, 3).Select
Next
For Each rngC In Worksheets("Mrz").Range("A6:A36")
If rngC.Value = Date Then rngC.Offset(0, 3).Select
Next
For Each rngC In Worksheets("Apr").Range("A6:A35")
If rngC.Value = Date Then rngC.Offset(0, 3).Select
Next
For Each rngC In Worksheets("Mai").Range("A6:A36")
If rngC.Value = Date Then rngC.Offset(0, 3).Select
Next
For Each rngC In Worksheets("Jun").Range("A6:A35")
If rngC.Value = Date Then rngC.Offset(0, 3).Select
Next
For Each rngC In Worksheets("Jul").Range("A6:A36")
If rngC.Value = Date Then rngC.Offset(0, 3).Select
Next
For Each rngC In Worksheets("Aug").Range("A6:A36")
If rngC.Value = Date Then rngC.Offset(0, 3).Select
Next
For Each rngC In Worksheets("Sep").Range("A6:A35")
If rngC.Value = Date Then rngC.Offset(0, 3).Select
Next
For Each rngC In Worksheets("Okt").Range("A6:A36")
If rngC.Value = Date Then rngC.Offset(0, 3).Select
Next
For Each rngC In Worksheets("Nov").Range("A6:A35")
If rngC.Value = Date Then rngC.Offset(0, 3).Select
Next
For Each rngC In Worksheets("Dez").Range("A6:A36")
If rngC.Value = Date Then rngC.Offset(0, 3).Select
Next
UserForm7.Show
End Sub


Lieder bin ich jetzt erst wirklich dazu gekommen daran zu arbeiten, hab aber leider keine Idee mehr wie ich den Fehler beheben kann.
Jemand von euch eine Idee?

Wäre super :D
Hallo Bastian,

vielleicht so:
Sub Schwimmen()
 With Sheets(Format(Date, "mmm")).Range("A6:A36")
   Application.Goto .Cells(Application.Match(CDbl(Date), .Cells, 0))
 End With
 UserForm7.Show
End Sub
Gruß Uwe
Moin Uwe,


super Danke, das Funktioniert schon einmal einwandfrei :). Besten Dank.

Hast du vielleicht noch einen Zusatz?
Bei dem alten Makro hat er mir dann die Eingaben in einer bestimmten Zeile eingetragen.
Sprich das Datum steht in Zeile A, aber der Eintrag kommt in Zeile D.
Dafür war der Zusatz:


f rngC.Value = Date Then rngC.Offset(0, 3).Select


Und genau das Select am Ende gibt mir den Fehler aus.
Hallo,

Zitat:Und genau das Select am Ende gibt mir den Fehler aus.

Select an sich ist ein Fehler, guckst du: Wer selektiert denn da?
(01.04.2018, 16:17)Bastian85 schrieb: [ -> ]Sprich das Datum steht in Zeile A, aber der Eintrag kommt in Zeile D.

dann einfach so:
Sub Schwimmen()
 With Sheets(Format(Date, "mmm")).Range("A6:A36")
   Application.Goto .Cells(Application.Match(CDbl(Date), .Cells, 0), 4)
 End With
 UserForm7.Show
End Sub
Was Klaus-Dieter meint, wird in folgendem Makro umgesetzt. Der Eintrag erfolgt in die richtige Zelle, ohne irgend etwas extra zu selektieren. Wink
Sub Schwimmen_ohne_Select()
 With Sheets(Format(Date, "mmm")).Range("A6:A36")
   .Cells(Application.Match(CDbl(Date), .Cells, 0), 4).Value = InputBox("Heutiges Ergebnis")
 End With
End Sub
Gruß Uwe
Super, funktioniert :)

Vielen, vielen Dank