Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Userform als Messagebox

Userform als Messagebox
17.04.2009 20:49:29
Horst
Hallo Community,
wie kann ich eine UserForm als MsgBox verwenden. Kann mal wer ein VBA-Bsp. hier reinstellen?
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Userform als Messagebox
17.04.2009 21:26:04
Jens
Hi
Wozu die UF als MsgBox missbrauchen und das Rad neu erfinden?
Gruß aus dem Sauerland
Jens
AW: Userform als Messagebox
17.04.2009 21:51:55
Horst
der Sinn dahinter ist, dass ich einen Screenshot von einer Msgbox benötige. Da das aber nicht funktioniert (weder über SendKeys noch über API), war meine Idee aus der MsgBox eine Userbox zu machen. Scheint in dem Fall aber nicht zu funktionieren, da in der MsgBox Berechnungswerte drin stehen, die sich immer ändern. Kann man evtl. auch eine MsgBox als .gif oder .bmp abspeichern. Weiß wer was?
Anzeige
AW: Userform als Messagebox
18.04.2009 08:20:34
ransi
HAllo Horst

Da das aber nicht funktioniert (weder über SendKeys noch über API),...


Stimmt so nicht ganz.
Ist zwar etwas Aufwand, aber machbar:

' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Dim hEvent

Private Declare Function SetTimer Lib "user32.dll" ( _
    ByVal hWnd As Long, _
    ByVal nIDEvent As Long, _
    ByVal uElapse As Long, _
    ByVal lpTimerFunc As Long) As Long

Private Declare Function KillTimer Lib "user32.dll" ( _
    ByVal hWnd As Long, _
    ByVal nIDEvent As Long) As Long

Private Declare Sub keybd_event Lib "user32.dll" ( _
    ByVal bVk As Byte, _
    ByVal bScan As Byte, _
    ByVal dwFlags As Long, _
    ByVal dwExtraInfo As Long)


Public Sub Aufruf()
EnableTimer 500
MsgBox "Test"
End Sub


Public Sub TimerProc(ByVal hWnd As Long, ByVal uMsg As Long, _
    ByVal wParam As Long, ByVal lParam As Long)

screenshot
'Jetzt liegt die Msgbox in der Zwischenablage.
DisableTimer
End Sub

Public Function EnableTimer(ByVal msInterval As Long)
If hEvent <> 0 Then Exit Function
hEvent = SetTimer(0&, 0&, msInterval, AddressOf TimerProc)
End Function

Public Function DisableTimer()
If hEvent = 0 Then Exit Function
KillTimer 0&, hEvent
hEvent = 0
End Function

Public Sub screenshot()
keybd_event &H2C, 1, 0, 0
End Sub

Ich würde es aber trotzdem mit der Userform machen.
(Ist einfacher)
ransi
Anzeige
AW: Userform als Messagebox
17.04.2009 21:27:40
Lenni
Moin Horst!
Vielleicht so:
https://www.herber.de/bbs/user/61274.xls
...nur so als Grundgedanke und Anreiz!
Schreibe mal in die Zelle A1 eine "1" (ohne ""). Schreibst Du eine andere Zahl in A1, erscheint das UserForm nicht.
Viele Grüße aus dem hohen Norden!
Lenni

Anzeige
AW: Userform als Messagebox
18.04.2009 10:31:39
Tino
Hallo,
hier mal ein Beispiel mit der Msgbox und etwas Api Zauber.
Getestet unter Win Vista mit Office 2007
https://www.herber.de/bbs/user/61275.xls
Gruß Tino
AW: Userform als Messagebox
18.04.2009 11:27:32
Horst
Es läuft!
Besten Dank an Ransi und Tino!! Ihr seid Weltklasse! :-))
Anzeige
;
Anzeige

Infobox / Tutorial

UserForm als Messagebox in Excel nutzen


Schritt-für-Schritt-Anleitung

Um eine UserForm als Messagebox in Excel zu verwenden, kannst Du die folgenden Schritte befolgen:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  2. Erstelle eine UserForm: Klicke mit der rechten Maustaste auf „VBAProject (DeinWorkbookName)“ und wähle „Einfügen“ -> „UserForm“.

  3. Füge Steuerelemente hinzu: Platziere Textfelder, Buttons oder Labels, um die UserForm nach Deinen Wünschen zu gestalten.

  4. Programmierung: Doppelklicke auf die UserForm und füge den folgenden Code ein, um die UserForm anzuzeigen:

    Private Sub UserForm_Initialize()
       Me.Caption = "Benachrichtigung"
       Me.Label1.Caption = "Dies ist eine benutzerdefinierte Nachricht."
       Me.Show
    End Sub
  5. Ausführen der UserForm: Um die UserForm zu starten, kannst Du einen Button in einem Arbeitsblatt erstellen und den folgenden Code verknüpfen:

    Private Sub CommandButton1_Click()
       UserForm1.Show
    End Sub
  6. Speichern: Vergiss nicht, die Datei als „Excel-Makro-fähige Arbeitsmappe“ (.xlsm) zu speichern.


Häufige Fehler und Lösungen

  • Fehler: UserForm wird nicht angezeigt
    Lösung: Überprüfe, ob Du den Show-Befehl im Initialisierungsprozess der UserForm richtig platziert hast.

  • Fehler: UserForm schließt sich sofort
    Lösung: Stelle sicher, dass die UserForm nicht mit einem Befehl wie Unload oder Hide geschlossen wird, bevor der Benutzer sie sehen kann.


Alternative Methoden

Wenn Du die Verwendung einer UserForm als Messagebox vermeiden möchtest, kannst Du auch die integrierte MsgBox-Funktion von Excel verwenden. Hier ein Beispiel:

Sub ZeigeMsgBox()
    MsgBox "Dies ist eine einfache Messagebox!", vbInformation, "Information"
End Sub

Diese Methode ist einfacher, bietet jedoch weniger Anpassungsmöglichkeiten als eine UserForm.


Praktische Beispiele

Hier ist ein Beispiel, wie Du eine UserForm mit einem Screenshot der MsgBox kombinieren kannst. Dies wurde in einem Beitrag von Ransi vorgeschlagen:

Public Sub Aufruf()
    EnableTimer 500
    MsgBox "Test"
End Sub

Public Sub TimerProc(ByVal hWnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long)
    screenshot
    DisableTimer
End Sub

Public Sub screenshot()
    keybd_event &H2C, 1, 0, 0
End Sub

Stelle sicher, dass Du die entsprechenden API-Methoden korrekt deklarierst, um Screenshot-Funktionalitäten zu nutzen.


Tipps für Profis

  • Anpassung der UserForm: Du kannst die UserForm mit verschiedenen Steuerelementen anpassen, um mehr Informationen oder Interaktionen zu ermöglichen.
  • Verwendung von Styles: Verwende Styles und benutzerdefinierte Designs, um die UserForm attraktiver zu gestalten.
  • Fehlerbehandlung: Implementiere eine Fehlerbehandlung, um unerwartete Probleme beim Anzeigen der UserForm zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich die Größe der UserForm anpassen?
Du kannst die Größe der UserForm im Eigenschaftenfenster des VBA-Editors ändern.

2. Ist es möglich, die UserForm in einer älteren Excel-Version zu verwenden?
Ja, die Verwendung von UserForms ist in den meisten Excel-Versionen ab Excel 2007 möglich. Achte jedoch darauf, dass einige API-Funktionen möglicherweise je nach Betriebssystem variieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige