Eigene Messagebox erstellen (mit modernem Design!)
Das Design deiner Anwendung trägt maßgeblich dazu bei, wie gerne BenutzerInnen damit arbeiten. Standard Messageboxen in VBA sind designtechnisch veraltet und sehen häufig auch sehr ähnlich aus.
Darum möchte ich dir zeigen, wie du eine moderne Messagebox in Excel VBA erstellen und in deine Anwendung integrieren kannst.
Als Grundlage für dieses Tutorial dient eine Kundenverwaltung, die du dir kostenlos hier herunterladen kannst.
Schritt 1: Messagebox erstellen und designen
Mithilfe von Formen, Bildern oder Icons sowie Texten kannst du dir direkt auf der Excel Oberfläche deine eigene Messagebox erstellen und designen. Am Ende gruppierst du alle Elemente und benennst die Gruppierung um, sodass du diese einfach per Code ansprechen kannst.
Schritt 2: Messagebox ein- und ausblenden und Blattschutz aktivieren
Jetzt geht es darum deine neue Messagebox korrekt ein- und auszublenden sobald dies erforderlich wird. Dazu erstellst du am besten Prozeduren, die den entsprechenden Code beinhalten und an der erforderlichen Stelle aufgerufen werden. Damit deine Messagebox von den AnwenderInnen nicht mehr verschoben werden kann, ist ein Blattschutz notwendig.
Den Code zum Einblenden hinterlegst du beim entsprechenden Icon deiner Anwendung.
Den Code zum Ausblenden fügst du z.B. dem X sowie dem Abbrechen Button direkt auf der Messagebox hinzu.
Sub MsgBoxAusblenden()
'Messagebox ausblenden
tb_Datenbank.Shapes("Messagebox").Visible = False
'Blattschutz deaktivieren
tb_Datenbank.Unprotect
End Sub
Sub MsgBoxEinblenden()
'Blattschutz aktivieren
tb_Datenbank.Protect DrawingObjects:=True
'Messagebox einblenden
tb_Datenbank.Shapes("Messagebox").Visible = True
End Sub
Schritt 3: Messagebox fixieren und zentrieren
Um sicherzustellen, dass deine Messagebox immer korrekt zentriert ist, kannst du die Position der Form automatisch berechnen. Dabei berücksichtigst du die Größe des Excel-Fensters und passt die Position entsprechend an. Diesen Code fügst du am besten in der Prozedur zum Einblenden der Messagebox hinzu.
Sub MsgBoxEinblenden()
'Messagebox positionieren
tb_Datenbank.Shapes("Messagebox").Left = (ActiveWindow.Width - tb_Datenbank.Shapes("Messagebox").Width) / 2
tb_Datenbank.Shapes("Messagebox").Top = (ActiveWindow.Height - tb_Datenbank.Shapes("Messagebox").Height) / 2
'Blattschutz aktivieren
tb_Datenbank.Protect DrawingObjects:=True
'Messagebox einblenden
tb_Datenbank.Shapes("Messagebox").Visible = True
End Sub
Schritt 4: Funktionalität hinzufügen
In diesem Beispiel soll mithilfe der Messagebox abgefragt werden, ob ein Datensatz wirklich gelöscht werden soll. Diese Funktionalität fügen wir noch dem „Löschen“ Button auf der Messagebox hinzu.
Sub ZeileLöschen()
'Blattschutz deaktivieren
tb_Datenbank.Unprotect
'Messagebox ausblenden
tb_Datenbank.Shapes("Messagebox").Visible = False
'Aktive Zeile löschen
ActiveCell.EntireRow.Delete
'Blattschutz aktivieren
tb_Datenbank.Protect DrawingObjects:=True
End Sub
Mit diesen Schritten hast du erfolgreich eine moderne Messagebox in Excel-VBA erstellt und in deine Anwendung integriert. Du hast somit eine benutzerfreundliche Oberfläche gestaltet, die nicht nur funktional, sondern auch ästhetisch ansprechend ist.
Ich hoffe dieses Tutorial hilft dir dabei deine Anwendungen mit ansprechenden Messageboxen zu verbessern.
Melde dich gerne für meinen Newsletter an und erhalte regelmäßig Tipps & Tricks rund um das Thema Excel VBA!