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.

VBA automatisch zu heutigem Datum springen
#1
Hallo alle zusammen,

ich habe ein Anliegen bezüglich eines Arbeitsplans, den ich zur Einteilung von Personal verwende.
Es sind im Grunde nur Tabellen untereinander, obendrüber immer das aktuelle Datum. Nun versuche ich vergeblich via VBA ein Makro zu erstellen mit dem man per Schaltflächen-Klicken auf den aktuellen Tag springt. Egal in welcher Registerkarte man sich befindet. Fortschritte mache ich hierbei leider nicht..

Ich habe mal eine Beispieldatei angefügt mit Erklärung.

Ich hoffe es kann mir jemand helfen. :(

Besten Dank im Voraus!


Freundliche Grüße


Angehängte Dateien
.xlsm   Arbeitsplan 2021.xlsm (Größe: 1,06 MB / Downloads: 1)
Antwortento top
#2
Hallo,

die Datei fehlt.
Gruß

Stoffo
Antwortento top
#3
Hallo

angenommen deine Datumspalte wäre A


in ein Modul, was du einem Butten auf jedem Blatt zuordnen kannst

Code:
Sub Datum()
    Dim TB As Worksheet, Zeile As Long, SP As Integer
    Dim WF
   
    Set TB = ActiveSheet
    SP = 1 ' Datum steht in Spalte A
    Set WF = WorksheetFunction
    Zeile = WF.CountIf(TB.Columns(SP), Date) 'Ist Datum vorhande
   
    If Zeile > 0 Then
        Zeile = WF.Match(CDbl(Date), TB.Columns(SP), 0) 'in Welcher Zeile
        Application.Goto TB.Cells(Zeile, SP), True 'True = Es wird hingescrollt; False = Es wird nur ausgewählt
    End If
End Sub


LG UweD
Antwortento top
#4
Ich habe die Datei erneut angehangen! Danke für den Hinweis!


Angehängte Dateien
.xlsm   Arbeitsplan 2021.xlsm (Größe: 1,06 MB / Downloads: 4)
Antwortento top
#5
Das funktioniert in der Registerkarte selber schon einmal toll! Allerdings nicht, wenn das Datum in einer anderer Registerkarte liegt. Gibt es hierfür auch eine Lösung?
Antwortento top
#6
Zitat:per Schaltflächen-Klicken auf den aktuellen Tag springt. Egal in welcher Registerkarte man sich befindet. 


Hallo
Ich hatte das so verstanden, dass egal auf welchem Blatt du dich befindest, die Zeile Dieses Blattes markiert werden sollte.





dann so...

Code:
Sub Datum()
    Dim TB As String, Datum As Date, Zeile As Integer
    Datum = DateSerial(Year(Date) + 1, Month(Date), Day(Date))
   
    TB = Format(Date, "MMM")
    Zeile = WorksheetFunction.Match(CDbl(Datum), Sheets(TB).Columns(1), 0)
    Application.Goto Sheets(TB).Cells(Zeile, 1), True
End Sub

LG UweD
Antwortento top
#7
Hallöchen,

oder so:

Code:
Sub tester()
Sheets(Format(Date, "MMM")).Activate
Cells(WorksheetFunction.Match(CDbl(Date), Columns(1), 0), 1).Activate
End Sub

Zitat:mit dem man per Schaltflächen-Klicken auf den aktuellen Tag springt.

... ohne Prüfung, ob Datum existiert. Da Deine Beispieldatei 2021 beinhaltet, würde das heute nicht gehen. Morgen und übermorgen auch nicht. Wird wohl noch ein paar Tage dauern Smile
   \\\|///      Hoffe, geholfen zu haben.
   ( ô ô )      Grüße, André aus G in T  
 ooO-(_)-Ooo    (Excel 97-2016)
Antwortento top
#8
Beide Varianten haben funktioniert. Habe das Datum von Windows als Test einfach einmal manuell geändert.
Nun tritt aber folgendes Problem mit einem Mal auf, wenn ich das Makro auslöse:

Fehler:
"die match-eigenschaft des worksheetfunction-objektes kann nicht zugeordnet werden"

Ich habe nicht an der Mappe gearbeitet oder etwas geändert.
Hat dazu jemand eine Lösung?
Antwortento top
#9
Hallo

dann gibt es auf dem Blatt in der Spalte A das Datum nicht.


Mit Prüfung:

Code:
Sub Datum()
    Dim TB As String, Datum As Date, Zeile As Integer
    Datum = Date
   
    TB = Format(Date, "MMM")
    If WorksheetFunction.CountIf(Sheets(TB).Columns(1), CDbl(Datum)) = 0 Then
        MsgBox Datum & " auf Blatt '" & TB & "' nicht vorhanden!"
    Else
        Zeile = WorksheetFunction.Match(CDbl(Datum), Sheets(TB).Columns(1), 0)
        Application.Goto Sheets(TB).Cells(Zeile, 1), True
    End If
End Sub

LG UweD
Antwortento top
#10
Mein Fehler, hab das Datum im falschen Blatt gehabt. Komplette Blödheit von meiner Seite.

Unfassbar, es klappt. Vielen Dank!!
Antwortento top


Gehe zu:


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