fritzchen
Goto Top

Öffnen Zelle neben dem aktuellen Datum selektieren

Hallo zusammen.

Ich habe derzeit ein Problem in einem Excel Projekt mit VBA. Ich bin noch Einsteiger im Thema VBA und komme leider nicht weiter und erhoffe hier Hilfe.

Zum Problem. Beim öffnen der Arbeitsmappe soll das Tabellenblatt mit dem aktuellen Monat geöffnet werden, was so auch funktioniert. Des weiteren möchte ich, um es dem Benutzer zu erleichtern, das das aktuelle Datum ausgewählt wird und die Zelle daneben für eine Eingabe selektiert wird. Dies funktioniert leider nicht.

Die Aufbau des Tabellenblattes.

Das Datum des jeweiligen Monats wird als Formel erstellt. Es soll dynamisch erstellt werden je nach Auswahl vom Jahr und Monat. Die Datumsliste befindet sich in den Zellen von B12 bis B42
Für den ersten Tag. In Zelle C5 steht das Jahr (Format Standard) und in Zelle C6 steht der Monat (Format "MMMM").
=WENNFEHLER(DATWERT(VERKETTEN(1;C6;C5));"")  
Das nächste Datum wird dann so erzeugt.
=WENNFEHLER(B12+1;"")  
Das Datum ist so als "TTT TT.MM.JJJJ" formatiert.

Das folgen Script habe ich im Internet gefunden und versucht an meine Bedürfnisse anzupassen. Leider nicht erfolgreich.
Ich habe es im VBA Editor unter "Diese Arbeitsmappe" eingefügt.

Private Sub Workbook_Open()
Dim dat As String

dat = Mid(Date, 4, 2)

Select Case dat
Case "01"  
Sheets("Januar").Select  
Case "02"  
Sheets("Februar").Select  
Case "03"  
Sheets("März").Select  
Case "04"  
Sheets("April").Select  
Case "05"  
Sheets("Mai").Select  
Case "06"  
Sheets("Juni").Select  
Case "07"  
Sheets("Juli").Select  
Case "08"  
Sheets("August").Select  
Case "09"  
Sheets("September").Select  
Case "10"  
Sheets("Oktober").Select  
Case "11"  
Sheets("November").Select  
Case "12"  
Sheets("Dezember").Select  
Case Else
MsgBox "Es konnte kein gültiger Monat ermittelt werden!"  
End Select

'Columns("B:B").Select  
Range("B12:B42").Select  

Selection.Find(What:=Date, After:=ActiveCell, LookIn:=xlFormulas _
, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False).Activate
ActiveCell.Offset(0, 1).Select

ActiveWindow.Zoom = 100
ActiveWindow.ScrollRow = ActiveWindow.ActiveCell.Row
ActiveWindow.SmallScroll Down:=-3

End Sub

Die Zelle neben dem Datum findet er zwar aber es wird immer der 01.02.2023 als Datum gewählt.

Ich verwende Microsoft Excel 2016. Ich hoffe ich habe alle wichtigen Informationen gegeben.

Es wäre toll wenn mir jemand bei meinem Problem weiterhelfen könnte. Ich sage schon mal herzlichen Dank im voraus.

Lg.

Content-Key: 6111111018

Url: https://administrator.de/contentid/6111111018

Printed on: April 28, 2024 at 07:04 o'clock

Mitglied: 6017814589
Solution 6017814589 Feb 24, 2023 updated at 11:01:29 (UTC)
Goto Top
Select Case dat
Case "01"
Sheets("Januar").Select
Case "02"
Sheets("Februar").Select
Case "03"
Sheets("März").Select
Wieso umständlich wenn es auch einfach geht face-smile.
Private Sub Workbook_Open()
    With Sheets(Format(Date, "mmmm"))  
        .Activate
        With .Range("B11").Offset(Day(Date), 1)  
            .Show
            .Select
        End With
    End With
End Sub
Erste Schritte mit VBA in Office
Excel VBA Referenz
Member: Fritzchen
Fritzchen Feb 24, 2023 at 12:59:32 (UTC)
Goto Top
Hallo.

Danke dir Hagelschaden für deine Hilfe.
Wow, so kurz nur und es funktioniert genau so wie ich es mir überlegt habe. Perfekt, herzlichen Dank.

Hm, habe versucht es nachzuvollziehen. Also verstehe ich das jetzt richtig, er findet anhand des Datums in der gesamten Arbeitsmappe und öffnet dann auch automatisch das richtige Arbeitsblatt?

Danke auch für die Links.

Lg
Mitglied: 6017814589
Solution 6017814589 Feb 24, 2023 updated at 13:37:25 (UTC)
Goto Top
X> Zitat von @Fritzchen:
Hm, habe versucht es nachzuvollziehen. Also verstehe ich das jetzt richtig, er findet anhand des Datums in der gesamten Arbeitsmappe und öffnet dann auch automatisch das richtige Arbeitsblatt?

Das hier
Format(Date, "mmmm")
generiert das aktuelle Datum als ausgeschriebenen Monatsnamen und das wird dann das als Parameter an die Sheets Auflistung übergeben, mit .Activate wird dann dieses Sheet aktiviert und danach noch je nach Tag des Monats der Offset zur Zelle B11 dieses Sheets angegeben, Beim ersten des Monats also Zelle B11 +1 = B12. Der zweite Parameter der Offset-Funktion gibt dann den horizontalen Versatz zur Spalte B an, welcher 1 ist weil du ja die Zelle daneben auswählen willst.
Member: Fritzchen
Fritzchen Feb 24, 2023 at 14:05:51 (UTC)
Goto Top
Hallo.

Ok, super habe ich verstanden.
Herzlichen Dank dir für die Ausführungen und die Hilfe.

Lg.