Registriert seit: 22.05.2022
Version(en): 2019
Hallo Gemeinde,
ich benutze in einer Datei dieses Makro welches auch funktioniert:
Code: Sub zuHeutespringen()
Dim lngZeile As Long
Dim lngSpalte As Long
Dim suchDatum As Date
suchDatum = Date
lngZeile = 21
For lngSpalte = Range("N21").Column To Range("XX21").Column
If IsDate(Cells(lngZeile, lngSpalte).Value) Then
If CDate(Cells(lngZeile, lngSpalte).Value) = suchDatum Then
Cells(lngZeile, lngSpalte).Select
Exit For
End If
End If
Next lngSpalte
End Sub
jetzt die Frage, besteht die Möglichkeit den Monat da ins Spiel zu bringen?
zum Beispiel wenn Januar ist dieses Makro auzuführen
Code: Sub a1Januar()
Range("A1").Select
End Sub
und wenn Februar ist dieses
Code: Sub a2Februar()
Call a1Januar
Range("CE1").Select
End Sub
bin schon jetzt sehr dankbar für eure Hilfe !!!
Danke !!!
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
Hier mal ein Ansatz. Du kannst z.B. mit
MsgBox Month(Date)
die Monatszahl ermitteln.
Du kannst z.B. die Zelladressen in ein Array packen
Dim arrAddress
arrAddress = Array("A1", "B2", "C3")
MsgBox arrAddress(2)
und beides kombinieren
...
MsgBox arrAddress(Month(Date))
und anschliessend feststellen, dass da noch irgendwo -1 angebracht wäre
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:1 Nutzer sagt Danke an schauan für diesen Beitrag 28
• kingkong
Registriert seit: 06.12.2015
Version(en): 2016
Hallo,
der Code findet das aktuelle Datum ohne alle Zellen "durchzuschleifen":
Code: Sub T_1()
Dim c As Range, Tag As Date, Adr As String
On Error GoTo Gef
Tag = Date
Application.FindFormat.Clear
Application.FindFormat.NumberFormat = "d-mmm"
With ActiveSheet.UsedRange
Set c = .Find("*", , , , , , , , True)
Adr = c.Address
Do
If CLng(c.Value) = CLng(Tag) Then Exit Do
Set c = .FindNext(c)
Loop Until c.Address = Adr
End With
Gef:
If Err Then
Debug.Print "Datum nicht gefunden"
Err.Clear
Else
Debug.Print "Gefunden: ", c
End If
End Sub
Für die 12 Monate sollte es nur einen Code geben, dem aber der aktuelle Monat übergeben wird:
my_Makro(Month©)
mfg
Folgende(r) 1 Nutzer sagt Danke an Fennek für diesen Beitrag:1 Nutzer sagt Danke an Fennek für diesen Beitrag 28
• kingkong
Registriert seit: 22.05.2022
Version(en): 2019
Danke euch Beiden für Eure investierte Zeit,
aber da bin ich jetzt raus, wollte eigentlich nur das das aktuelle Monatsblatt zentriert dargestellt wird.
Danke Euch trotzdem !!!
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo,
Code: Sub zuHeutespringen()
Dim lngZeile As Long
Dim lngSpalte As Long
Dim suchDatum As Date
suchDatum = Date
lngZeile = 21
For lngSpalte = Range("N21").Column To Range("XX21").Column
If IsDate(Cells(lngZeile, lngSpalte).Value) Then
If CDate(Cells(lngZeile, lngSpalte).Value) = suchDatum Then
Cells(lngZeile, lngSpalte).Select
Application.Run "a" & Format(Date, "m") & Format(Date, "mmmm")
Exit For
End If
End If
Next lngSpalte
End Sub
Gruß Uwe
Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:1 Nutzer sagt Danke an Kuwer für diesen Beitrag 28
• kingkong
Registriert seit: 24.01.2020
Version(en): 365
(12.02.2023, 18:25)kingkong schrieb: Danke euch Beiden für Eure investierte Zeit,
aber da bin ich jetzt raus, wollte eigentlich nur das das aktuelle Monatsblatt zentriert dargestellt wird.
Danke Euch trotzdem !!!
Hallo kingkong,
noch ein kleiner Hinweis zu Uwes Ergänzung im Code :)
Diese bewirkt, dass deine Subs "a1Januar", "a2Februar", "a3März", etc. gestartet werden, nachdem die eigentliche "Datumszelle" ausgewählt wurde...Voraussetzung ist also, dass du diese Subs bis "a12Dezember" auch geschrieben hast :)
Schönen Abend,
Phiant
Folgende(r) 1 Nutzer sagt Danke an Phiant für diesen Beitrag:1 Nutzer sagt Danke an Phiant für diesen Beitrag 28
• kingkong
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
13.02.2023, 05:11
(Dieser Beitrag wurde zuletzt bearbeitet: 13.02.2023, 05:18 von RPP63.)
Moin!
Scheint mir ein typisches X/Y-Problem zu sein!
Wenn in der Threaderöffnung eine Datei angehangen wäre, hätten wir wahrscheinlich ganz andere Lösungen.
Falls Monatsblätter vorhanden sind (ist eher bäääh!), dann
Worksheets(Month(Date)).Activate
(evtl. den Index um 1 erhöhen, wenn es ein "Deckblatt" gibt)
Falls die Blätter Monatsnamen haben, ginge es auch so
• Worksheets(Application.GetCustomListContents(8)(Month(Date))).Activate
• oder Worksheets(Format(Date, "MMMM")).Activate
Wenn dann noch zum aktuellen Datum gesprungen werden soll, dann nach Aktivieren des Sheets
ActiveWindow.ScrollColumn = Day(Date)
Oder gleich in einem Rutsch mit einer anderen Methode:
Application.Goto Worksheets(Format(Date, "MMMM")).Cells(1, Day(Date)), True
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen, king kong
Vor allem wäre eine genauere Aufgabenbeschreibung hilfreich.
Ob mit der bisherigen Aufgabenbeschreibung eine Datei geholfen hätte ..
CE1 gibt's auf jedem Blatt, dazu muss man nicht das Blatt wechseln..
Aufgabe war im Januar ein Makro mit
Range("A1").Select
und im Februar ein Makro mit
Range("CE1").Select
Uwe's Ansatz ist da doch gut, aber wenn Du lieber mit festen Zelladressen arbeiten willst, da braucht man kein Makro aufzurufen, da reicht (m)ein Ansatz als Zweizeiler oder noch kürzer als Einzeller
MsgBox Array("A1", "B2", "C3")(Month(Date) - 1) 'Gibt die die Daten als Meldung aus
bzw.
Sub Test()
Range(Array("A1", "B2", "C3")(Month(Date) - 1)).Select
End Sub
natürlich dann auf die 12 Monate erweitert und mit den korrekten Zelladressen. Dabei lass ich aber auch gerne den TE mitarbeiten ![Smile Smile](https://www.clever-excel-forum.de/images/smilies/smile.gif)
Es wäre auch kontraproduktiv, wenn Du erst in Deinem bisherigen Code was suchst und selektierst und anschließend eine andere Zelle selektierst.
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:1 Nutzer sagt Danke an schauan für diesen Beitrag 28
• kingkong
Registriert seit: 22.05.2022
Version(en): 2019
14.02.2023, 00:11
(Dieser Beitrag wurde zuletzt bearbeitet: 14.02.2023, 00:15 von kingkong.)
Danke euch allen vielmals !!!
Ok, eure Kritik nehme ich gerne auf, aber dachte es ist verständlich erklärt ![Sad Sad](https://www.clever-excel-forum.de/images/smilies/sad.gif) .
Habe auch bei dieser Tabelle per E-Mail Hilfe von einem Nutzer erhalten, worüber ich mich sehr gefreut habe.
Also von Kuwer und phiant die Lösung war die, die ich genommen habe.
Und ja vielleicht hätte ich mehr schreiben können, wie z.Bsp. das jeder Monat einzeln steht und dazwischen die aktuellen Urlaubstage wie Überstunden und Kranktage etc. und ich mit den anderen Makros
dann denn Monat zentriert darstellen möchte aber ich dachte diese Informationen braucht ihr nicht da ich ja die Makros geschickt hatte.
Sorry mein Fehler aber Danke Danke Danke euch allen.
es wird nicht meine letzte Frage sein und bei der nächsten mache ich es besser
Gruß der Affe
für euch noch mal grob die Datei.
https://www.clever-excel-forum.de/Thread...29-Februar
|