Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Fehler der Methode "Select" des Objektes "Range"
#1
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
Antworten Top
#2
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
Antworten Top
#3
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.
Antworten Top
#4
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?
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#5
(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
Antworten Top
#6
Super, funktioniert :)

Vielen, vielen Dank
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste