In Excel zum aktuellen Datum springen?
Habe hier einen Urlaubsplan und würde gerne dafür sorgen, dass beim Öffnen des Plans direkt zum aktuellen Datum gesprungen wird, welches beispielhaft so aussieht und sich in Spalte C befindet: [ Mo. 01.01 ] (eckige Klammern ignorieren)
2 Antworten
Hallo,
Versuchs mal damit.
Code einfügen unter VBA "Diese Arbeitsmappe". Datum muß in Spalte C stehen.
Private Sub Workbook_Open()
Dim Suchbegriff As Range
Set Suchbegriff = Range("C:C").Find(What:=Date, LookAt:=xlWhole)
If Suchbegriff Is Nothing = False Then _
Range(Suchbegriff.Address).Activate
End Sub
by http://www.herber.de/forum/archiv/372to376/374764_beim_Oeffnen_zum_aktuellen_Datum_springen.html
Oh. Jap, das hatte ich vorrausgesetzt bei so einer Frage.
Gut dass es sich geklärt hat und wir eine Lösung für Dich hatten. :)
Viel Spass!
Hatte es schonmal mit dem code versucht, funktioniert leider nicht (Code ist von 2004, Excel Version ist Excel 2010)
Eben mit Excel 2013 und 16 probiert. Funktioniert einwandfrei.
Nö, eher daran dass Du dich mit der Materie nicht befassen möchtest.
Nachdem Du den Code ins "Diese Arbeitsmappe" gepackt hast, speichern (VBA) anschließend zu Excel wechseln und die Mappe als XLSM speichern! - Nur dann werden Makros bei Start ausgeführt.
Auf "funktioniert nicht" kann man schlecht eine Fehleranalyse aufbauen. Du müsstest schon die Fehlermeldung nennen oder die Stelle, an der der Interpreter aussteigt.
Vergleich das einmal mit irgendetwas anderem, zum Beispiel einem Auto. Ich schreibe dir "Mein Auto funktioniert nicht". Könntest du anhand dieser Information herausfinden, welches Problem mein Auto hat?
Der Code sieht jedenfalls auf dem ersten Blick sauber aus. Vom Prinzip her entspricht das der Variante von Eismensch, nur in einer etwas abgespeckten Ausführung.
Nativ kann es Excel nicht. Also es gibt keine einfache Funktion "spring immer da hin". Excel ist nun mal eine Tabellenkalkulation und kein Urlaubsplaner ;)
Das bedeutet aber natürlich nicht, dass es unmöglich ist. Mit ein wenig VBA kannst du dir dein eigenes Event basteln.
Hier mal was, das ich nach 20 Sekunden googeln gefunden habe:
Add a worksheet active event in each worksheet:
Private Sub Worksheet_Activate()
Dim FindString As Date
Dim Rng As Range
FindString = CLng(Date)
With Rows("3:3")
Set Rng = .Find(What:=FindString, _
After:=.Cells(.Cells.Count), _
LookIn:=xlFormulas, _
LookAt:=xlWhole, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False)
If Not Rng Is Nothing Then
Application.Goto Rng, True
Else
'Give a message that todays date was not found
MsgBox "Nothing found"
End If
End With
End Sub
Thus, when the user select the worksheet the code will run and find todays date in row 3.
Ich selbst bin mit VBA nicht sehr vertraut, aber das sieht richtig aus. Vielleicht ein paar kleinere Anpassungen. Wenn du dich damit nicht auskennst, wirst du die Dokumentation dazu ebenfalls online finden. Dort ist dann beschrieben was welcher Befehl macht.
Hab den Fehler gefunden, recht weit oben stand einfach nur "2018" , daher ist Excel immer nur nach dort gesprungen. Und übrigens, ich hätte vielleicht erwähnen sollen, dass ich nie zuvor mit VBA oder Excel Makros gearbeitet habe. Trotzdem danke...