Das Tabellenblatt öffnet sich nicht?
Hallo, ich habe Button womit ich eine Datei und darin direkt eine Eingabemaske öffnen will. Mein bisheriger Code aktiviert / öffnet die Datei, was mir fehlt, ist die direkte Anzeige der Eingabemaske. Ich stelle den Code mal hier ein, um vielleicht eine Lösung zu erhalten. Ich komme einfach nicht weiter.
Private Sub CommandButton1_Click()
Dim ws As Worksheet
Dim passwort As String
Dim pfad_zur_datei As String
Dim wb As Workbook
Dim bestaetigung As VbMsgBoxResult
' Bestätigungsnachricht anzeigen und Passwort abfragen
bestaetigung = MsgBox("Möchten Sie fortfahren?", vbQuestion + vbYesNo, "Bestätigung")
' Wenn der Benutzer auf "Ja" klickt
If bestaetigung = vbYes Then
passwort = InputBox("Geben Sie das Passwort ein:", "Passwortabfrage")
' Überprüfe das eingegebene Passwort
If passwort = "123" Then ' Ersetze "dein_passwort" durch das gewünschte Passwort
' Konstruiere den vollständigen Pfad zur Datei
pfad_zur_datei = "G:\NEU Reduziert für DEMO.xlsm" ' Passe den Pfad an
' Überprüfe, ob das Arbeitsblatt "Auswahlklick" existiert
On Error Resume Next
Set ws = Workbooks.Open(pfad_zur_datei).Worksheets("Auswahlklick")
On Error GoTo 0
' Wenn das Arbeitsblatt existiert, aktiviere es
If Not ws Is Nothing Then
ws.Activate
Else
MsgBox "Das Arbeitsblatt 'Auswahlklick' wurde nicht gefunden.", vbExclamation
Exit Sub
End If
Else
MsgBox "Falsches Passwort. Der Zugriff wurde verweigert.", vbExclamation
Exit Sub
End If
Else
MsgBox "Vorgang abgebrochen.", vbInformation
Exit Sub
End If
' Hier den restlichen Code ausführen, der auf dem geöffneten Arbeitsblatt "ws" basiert
End Sub
2 Antworten
Danke, habe es jetzt anders gelöst. Warum nun kein Problem zum finden des "Pfades" besteht, erschließt sich mir nicht. Schöne Feiertage wünsche ich. Gruß Wolly
Private Sub CommandButton1_Click()
Dim wb As Workbook
Dim ws As Worksheet
Dim bestaetigung As VbMsgBoxResult
Dim passwort As String
' Bestätigungsnachricht anzeigen und Passwort abfragen
bestaetigung = MsgBox("Möchten Sie fortfahren?", vbQuestion + vbYesNo, "Bestätigung")
' Wenn der Benutzer auf "Ja" klickt
If bestaetigung = vbYes Then
passwort = InputBox("Geben Sie das Passwort ein:", "Passwortabfrage")
End If
' Überprüfe das eingegebene Passwort
If passwort = "123" Then ' Ersetze "dein_passwort" durch das gewünschte Passwort
End If
' Pfad zur Datei mit "Tabelle8"
Dim pfad_zur_datei As String
pfad_zur_datei = "G:\Rheumaliga\1_Quartal_2024.xlsm"
' Öffne die Arbeitsmappe
Set wb = Workbooks.Open(pfad_zur_datei)
' Überprüfe, ob die Arbeitsmappe geöffnet wurde
If Not wb Is Nothing Then
' Überprüfe, ob das Arbeitsblatt "Tabelle8" existiert
On Error Resume Next
Set ws = wb.Sheets("Tabelle1")
On Error GoTo 0
' Wenn das Arbeitsblatt gefunden wurde, aktiviere es
If Not ws Is Nothing Then
ws.Activate
Else
MsgBox "Das Arbeitsblatt 'Tabelle1' wurde nicht gefunden.", vbExclamation
End If
Else
MsgBox "Die Datei konnte nicht geöffnet werden.", vbExclamation
End If
End Sub
Userform.Show sollte der entsprechende Befehl sein.
Da es eine xlsm-Datei ist, am besten dort beim Workbook.Open machen.
Ich kann auf dem ersten Blick keinen Fehler im Code erkennen. Hast du den Pfad angepasst auf deine Wunschdatei?
Der Fehler ist in Zeile:
Set ws = wb.Worksheets("Auswahlklick")
mit der Meldung: Laufzeitfehler 9, Index außerhalb des gültigen Bereichs.
Ich habe den Pfad reinkopiert und die Tabelle "Auswahlklick" ist ja vorhanden.
Auf den ersten Blick müsste eigendlich alles richtig sein.
Der Codeteil in dem es stockt.
If passwort = "123" Then ' Ersetze "dein_passwort" durch das gewünschte Passwort
' Konstruiere den vollständigen Pfad zur Datei
pfad_zur_datei = "G:\NEU Reduziert für DEMO.xlsm" ' Passe den Pfad an
' Überprüfe, ob das Arbeitsblatt "Auswahlklick" existiert
On Error Resume Next
Set wb = Workbooks.Open(pfad_zur_datei)
On Error GoTo 0
If Not wb Is Nothing Then
Set ws = wb.Worksheets("Auswahlklick")
If Not ws Is Nothing Then
ws.Activate ' Arbeitsblatt "Auswahlklick" aktivieren
Sieht für mich auch richtig aus.
Versuch es auf einem alternativen Weg. Aktiviere zunächst Worksheets(1) und taste dich dann bis zu deinem Worksheet vor.
Dritte Möglichkeit: Versuch es mit wb.Auswahlklick.
Du kannst dir auch in einer Schleife die Namen der Worksheets ausgeben lassen.
Meiner Erinnerung nach kann das Tabellenobjekt einen anderen Namen haben als die Bezeichnung der Tabelle.
Wenn alles nichts hilft, setzt du im wb ein Makro und debugst das wb-Objekt.
Ich möchte eine Tabelle mit dem Code öffnen. Eine Userform ist hier nicht angezeigt. Geht vielleicht ein Codeabschnitt, der zur Lösung führen würde?