ich möchte, das wenn Arbeitsmappe "Statistik" geöffnet wird, eine
UserForm startet. Der Haken dabei ist, die Arbeitsmappe soll niergends
zu sehen sein. Nur die UserForm!
Machbar?
Gruß
Mike
Private Sub workbook_open()
Dim i As Integer
For i = 2 To Worksheets.Count
Worksheets(i).Visible = xlVeryHidden
Next
Application.Visible = False
UserForm2.Show
End Sub
Option Explicit
Private Sub Main()
Dim xlApp As Object
Set xlApp = CreateObject("Excel.Application")
xlApp.Workbooks.Open App.Path & "\Mappe1.xls", Password:="Nepumuk"
Set xlApp = Nothing
End
End Sub
Die Datei https://www.herber.de/bbs/user/18108.zip wurde aus Datenschutzgründen gelöscht
Die .XLS und die .EXE müssen in einem Ordner liegen.
Private Sub UserForm_Activate()
End Sub
Öffne die Excel-Arbeitsmappe: Stelle sicher, dass die Arbeitsmappe, die die UserForm enthält, bereit ist.
Füge den VBA-Code ein:
ALT + F11
.Private Sub Workbook_Open()
Dim i As Integer
For i = 2 To Worksheets.Count
Worksheets(i).Visible = xlVeryHidden
Next
Application.Visible = False
UserForm1.Show
End Sub
Stelle sicher, dass die UserForm richtig konfiguriert ist: Wenn notwendig, passe die Eigenschaften der UserForm an, damit sie den gesamten Bildschirm ausfüllt.
Speichere die Arbeitsmappe: Stelle sicher, dass du die Datei im Makro-fähigen Format (.xlsm) speicherst.
Teste das Öffnen: Schließe die Arbeitsmappe und öffne sie erneut, um zu sehen, ob die UserForm direkt startet und Excel unsichtbar bleibt.
Excel wird sichtbar: Wenn Excel beim Öffnen kurz sichtbar wird, kann es daran liegen, dass der Code nicht richtig implementiert wurde. Stelle sicher, dass der Application.Visible = False
Befehl am Ende deines Workbook_Open
Codes steht.
ListBox ist leer: Wenn deine ListBox in der UserForm nach dem Öffnen leer ist, solltest du sicherstellen, dass der Code zur Befüllung der ListBox im UserForm_Activate
-Ereignis platziert ist.
Private Sub UserForm_Activate()
' Code zur Befüllung der ListBox hier hinzufügen
End Sub
Eine alternative Methode, die Excel-Maske automatisch zu öffnen, besteht darin, eine ausführbare Datei (.exe) zu erstellen, die Excel im Hintergrund öffnet. Dazu kannst du den folgenden Code verwenden:
Option Explicit
Private Sub Main()
Dim xlApp As Object
Set xlApp = CreateObject("Excel.Application")
xlApp.Workbooks.Open App.Path & "\Mappe1.xls", Password:="DeinPasswort"
Set xlApp = Nothing
End Sub
Diese Methode ermöglicht es dir, Excel vollständig unsichtbar zu halten, während die UserForm sichtbar bleibt.
Ein praktisches Beispiel könnte eine Eingabemaske für Kundendaten sein. Du kannst eine UserForm erstellen, die Felder für Name, Adresse und Telefonnummer enthält. Die Eingaben können dann in eine versteckte Tabelle gespeichert werden.
Hier ist ein Beispiel für den Code zur Speicherung der Daten:
Private Sub btnSpeichern_Click()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Daten")
ws.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Value = Me.txtName.Value
ws.Cells(Rows.Count, 2).End(xlUp).Offset(1, 0).Value = Me.txtAdresse.Value
ws.Cells(Rows.Count, 3).End(xlUp).Offset(1, 0).Value = Me.txtTelefon.Value
Me.Hide
End Sub
Verwendung von Application.DisplayAlerts = False
: Um unnötige Bildschirmflackern zu vermeiden, kannst du diese Einstellung vor dem Anzeigen der UserForm verwenden. Vergiss nicht, sie danach wieder auf True
zu setzen.
Eingabemaske optimieren: Achte darauf, dass die UserForm benutzerfreundlich gestaltet ist. Verwende klare Beschriftungen und stelle sicher, dass alle Eingabefelder gut sichtbar sind.
Automatisierung: Du kannst die UserForm so einstellen, dass sie bestimmte Aktionen automatisch ausführt, sobald sie geöffnet wird, z.B. das Füllen von Dropdown-Listen oder das Vorbefüllen von Feldern.
1. Wie kann ich die UserForm beim Öffnen der Arbeitsmappe automatisch starten?
Du kannst das Workbook_Open
Ereignis nutzen, um die UserForm beim Öffnen der Datei zu starten.
2. Ist es möglich, die UserForm in einer bestimmten Größe anzuzeigen?
Ja, du kannst die Eigenschaften der UserForm anpassen, um die Größe festzulegen. Stelle sicher, dass die Position und Größe so eingestellt sind, dass sie den gesamten Bildschirm ausfüllt.
3. Wie kann ich die Eingabemaske anpassen, um spezifische Daten zu erfassen?
Du kannst verschiedene Steuerelemente wie TextBoxen, ListBoxen und ComboBoxen hinzufügen, um verschiedene Datentypen zu erfassen.
4. Was kann ich tun, wenn die UserForm nicht richtig angezeigt wird?
Überprüfe den Code und stelle sicher, dass alle Steuerelemente korrekt benannt und konfiguriert sind. Achte auch darauf, dass Excel nicht sichtbar ist, bevor die UserForm angezeigt wird.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen