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.

Automatisches Öffnen / Anzeige eines Tabelleblattes
#1
Hallo zusammen,

ich habe eine Tabelle mit mehreren Tabellenblättern für jeden Tag des Monats, beispielsweise "15.10.2021" usw. Wie müsste folgender Code umgeschrieben werden, damit immer das Tabellenblatt mit dem aktuellen Datum "Heute()" in der Navigationsleiste unten ganz links angezeigt wird - also als erstes?

Code:
Public Sub Workbook_Open()
Application: Sheets("Tabelle1").Activate
End Sub

Tabelle1 soll das Tabellenblatt sein welches das aktuelle Datum hat.

Geht so etwas überhaupt?

Viele Grüße
Rudi
Antworten Top
#2
Hi Rudi,

teste mal:

Code:
Private Sub Workbook_Open()
Dim wS As Worksheet
On Error GoTo ERR_Handler
For Each wS In ThisWorkbook.Worksheets
    If CDate(wS.Name) = Date Then
        wS.Move before:=Worksheets(1)
        Exit Sub
    End If
Next wS
Exit Sub
ERR_Handler:
MsgBox "Das ist was schief gelaufen"
End Sub
Antworten Top
#3
Guten Morgen Boris,

perfekt...mehr gibt es dazu nicht zu sagen. Vielen Dank für die schnelle Hilfe.

VG und ein schönes WE
Rudi
Antworten Top
#4
Hallo zusammen,

leider muss ich doch noch einmal nachfragen. Ich habe den Code, der perfekt funktioniert hat, in eine andere Tabelle kopiert. Hier kommt auf einmal die im Code angezeigte Meldung das da etwas schiefgelaufen ist.

Die Tabellen sind gleich aufgebaut und die Tabellenblätter haben die gleiche Bezeichnung (Datum)

Danke im Voraus für die Hilfe.

VG Rudi
Antworten Top
#5
Hi Rudi,

dann gibt es in dieser Mappe mindestens irgendein Blatt, was kein Datum als Blattname hat - damit läuft CDate in den Fehler.

Teste mal:

Code:
Private Sub Workbook_Open()
Dim wS As Worksheet
On Error GoTo ERR_Handler
For Each wS In ThisWorkbook.Worksheets
    If IsDate(wS.Name) Then
        If CDate(wS.Name) = Date Then
            wS.Move before:=Worksheets(1)
            Exit Sub
        End If
    End If
Next wS
Exit Sub
ERR_Handler:
MsgBox "Das ist was schief gelaufen"
End Sub
Antworten Top
#6
Hallo Boris,

das stimmt. Da habe ich gar nicht drauf geachtet. Blush

Wie könnte der Code angepasst werden damit der Fehler nicht mehr auftritt?

VG
Rudi
Antworten Top
#7
Hi Rudi,

ich versteh Deine Frage nicht - ich habe Dir doch bereits einen angepassten Code geschickt...?
Antworten Top
#8
Hallo Boris,

danke erstmal, dass Du Dir die Zeit nimmst.

Ich habe einmal einen Screenshot beigefügt auf dem die Tabellenblätter zu erkennen sind und die Fehlermeldung.

   

Es liegt bestimmt an meiner fehlenden VBA Erfahrung.

VG
Rudi
Antworten Top
#9
Hi Rudi,

der Screenshot nützt nix ohne Deine Datei und den darin verwendeten Code.
Ich hatte Dir aber mit der Antwort um 12:54h einen angepassten Code gepostet - hast Du den eingebaut?
[-] Folgende(r) 1 Nutzer sagt Danke an {Boris} für diesen Beitrag:
  • bigrudi1966
Antworten Top
#10
Hallo Boris,
 
ist mir das peinlich. Wer lesen kann ist klar im Vorteil. Blush Blush Blush

Habe Deine geänderten Code eingefügt und es funktioniert perfekt.

Danke für Deine Mühe und vor allem für Dein Verständnis.

VG
Rudi
Antworten Top


Gehe zu:


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