Office: Msgbox und Knöpfe selbst benennen

Helfe beim Thema Msgbox und Knöpfe selbst benennen in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; XLS2010: Kann man bei einer Messagebox-Ausgabe per VBA einzelnen Knöpfen einen selbst gewählten Text verpassen? Wenn ja, wie geht das? Danke, Rolf... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Rolfie, 29. Mai 2017.

  1. Msgbox und Knöpfe selbst benennen


    XLS2010: Kann man bei einer Messagebox-Ausgabe per VBA einzelnen Knöpfen einen selbst gewählten Text verpassen?

    Wenn ja, wie geht das?

    Danke, Rolf

    :)
     
    Rolfie, 29. Mai 2017
    #1
  2. Hajo_Zi
    Hajo_Zi Erfahrener User
    Hallo Rolf,

    NEIN, benutze UserForm
     
    Hajo_Zi, 30. Mai 2017
    #2
  3. Hallo,

    klar geht das. Ist nur eine Frage des Aufwandes:

    Option Explicit

    Private Declare Function FindWindowA Lib "user32.dll" ( _
    ByVal lpClassName As String, _
    ByVal lpWindowName As String) As Long
    Private Declare Function SetTimer Lib "user32.dll" ( _
    ByVal Hwnd As Long, _
    ByVal nIDEvent As Long, _
    ByVal uElapse As Long, _
    ByVal lpTimer As Long) As Long
    Private Declare Function KillTimer Lib "user32.dll" ( _
    ByVal Hwnd As Long, _
    ByVal nIDEvent As Long) As Long
    Private Declare Function MessageBoxA Lib "user32.dll" ( _
    ByVal Hwnd As Long, _
    ByVal lpText As String, _
    ByVal lpCaption As String, _
    ByVal wType As Long) As Long
    Private Declare Function SendDlgItemMessageA Lib "user32.dll" ( _
    ByVal hDlg As Long, _
    ByVal nIDDlgItem As Long, _
    ByVal wMsg As Long, _
    ByVal wParam As Long, _
    ByVal lParam As String) As Long

    Private Const TIMER_ID = 0
    Private Const TIMER_ELAPSE = 25
    Private Const WM_SETTEXT = &HC
    Private Const GC_CLASSNAMEMSEXCEL = "XLMAIN"
    Private Const GC_CLASSNAMEMSDIALOGS = "#32770"

    Private lstrButtonCaption1 As String
    Private lstrButtonCaption2 As String
    Private lstrButtonCaption3 As String
    Private lstrBoxTitel As String
    Private llngHwnd As Long

    Private Function MsgBoxPlus( _
    ByVal strText As String, _
    ByVal strTitle As String, _
    ByVal strButtonText1 As String, _
    Optional ByVal strButtonText2 As String, _
    Optional ByVal strButtonText3 As String, _
    Optional ByVal enmStyle As VbMsgBoxStyle) As Long


    Dim lngResult As Long

    lstrButtonCaption1 = strButtonText1
    lstrButtonCaption2 = strButtonText2
    lstrButtonCaption3 = strButtonText3
    lstrBoxTitel = strTitle

    If Val(Application.Version) > 9 Then
    llngHwnd = Application.Hwnd
    Else
    llngHwnd = FindWindowA(GC_CLASSNAMEMSEXCEL, Application.Caption)
    End If

    Call SetTimer(llngHwnd, TIMER_ID, TIMER_ELAPSE, AddressOf SetButtonText)

    If lstrButtonCaption2 = "" And lstrButtonCaption3 = "" Then
    lngResult = MessageBoxA(llngHwnd, strText, strTitle, vbOKOnly Or enmStyle)
    ElseIf lstrButtonCaption2 <> "" And lstrButtonCaption3 = "" Then
    lngResult = MessageBoxA(llngHwnd, strText, strTitle, vbYesNo Or enmStyle)
    Else
    lngResult = MessageBoxA(llngHwnd, strText, strTitle, vbAbortRetryIgnore Or enmStyle)
    End If

    If lngResult = 1 Or lngResult = 3 Or lngResult = 6 Then
    MsgBoxPlus = 1
    ElseIf lngResult = 4 Or lngResult = 7 Then
    MsgBoxPlus = 2
    Else
    MsgBoxPlus = 3
    End If

    End Function

    Private Sub SetButtonText()

    Dim lngBox_hWnd As Long

    Call KillTimer(llngHwnd, TIMER_ID)

    lngBox_hWnd = FindWindowA(GC_CLASSNAMEMSDIALOGS, lstrBoxTitel)

    If lstrButtonCaption2 = "" And lstrButtonCaption3 = "" Then
    Call SendDlgItemMessageA(lngBox_hWnd, vbCancel, WM_SETTEXT, 0&, lstrButtonCaption1)
    ElseIf lstrButtonCaption2 <> "" And lstrButtonCaption3 = "" Then
    Call SendDlgItemMessageA(lngBox_hWnd, vbYes, WM_SETTEXT, 0&, lstrButtonCaption1)
    Call SendDlgItemMessageA(lngBox_hWnd, vbNo, WM_SETTEXT, 0&, lstrButtonCaption2)
    Else
    Call SendDlgItemMessageA(lngBox_hWnd, vbAbort, WM_SETTEXT, 0&, lstrButtonCaption1)
    Call SendDlgItemMessageA(lngBox_hWnd, vbRetry, WM_SETTEXT, 0&, lstrButtonCaption2)
    Call SendDlgItemMessageA(lngBox_hWnd, vbIgnore, WM_SETTEXT, 0&, lstrButtonCaption3)
    End If

    End Sub

    Public Sub Aufruf()
    Select Case MsgBoxPlus(strText:="Ich bin der Text", strTitle:="Titel", _
    strButtonText1:="Button 1", strButtonText2:="Button 2", _
    strButtonText3:="Button 3", enmStyle:=vbInformation)
    Case 1
    MsgBox "Button 1"
    Case 2
    MsgBox "Button 2"
    Case 3
    MsgBox "Button 3"
    End Select
    End Sub
     
    Nepumuk, 30. Mai 2017
    #3
  4. Msgbox und Knöpfe selbst benennen

    Könnte man auch so machen. Hier gibt es die Dateien.
     
    Storax, 31. Mai 2017
    #4
Thema:

Msgbox und Knöpfe selbst benennen

Die Seite wird geladen...
  1. Msgbox und Knöpfe selbst benennen - Similar Threads - Msgbox Knöpfe benennen

  2. MsgBox mit Berechnung und Eintrag in Tabelle

    in Microsoft Access Hilfe
    MsgBox mit Berechnung und Eintrag in Tabelle: Moin moin liebe Formengemeinschaft. Nun bin ich schon das WWW am Durchsuchen und habe nichts passendes gefunden. Ausgangspostion: Ich habe eine Datenbank und überwache hier Daten mit einem...
  3. VBA: Mit MsgBox bestimmte Inhalte von Zeile leeren

    in Microsoft Excel Hilfe
    VBA: Mit MsgBox bestimmte Inhalte von Zeile leeren: Hallo Excel Freunde, ich habe in der Tabelle, Spalte A fortlaufende ID Nummern hinterlegt (1-200). Jetzt möchte den Inhalt (Zeile) z.B ID 180 leeren. Dabei soll nicht die ganze Zeile geleert...
  4. VBA-Code Arbeitsblatt wechseln

    in Microsoft Excel Hilfe
    VBA-Code Arbeitsblatt wechseln: Hallo zusammen, ich habe mal wieder eine Frage. Aktuell beschäftige ich mich mit VBA-Codes. Beim öffnen meiner Arbeitsmappe erscheint folgender Hinweis: Private Sub Workbook_Open() 'Titel Hinweis...
  5. MsgBox bei zwei Werten

    in Microsoft Excel Hilfe
    MsgBox bei zwei Werten: Hallo Zusammen, wenn ich im Bereich E2029:E200000 in eine Zelle Test1 eingebe kommt die MsgBox ohne Probleme. Wie muss man den Code ändern damit die Box auch kommt wenn ich Test2 eingebe?...
  6. MsgBox in Excel anzeigen lassen per Word VBA

    in Microsoft Word Hilfe
    MsgBox in Excel anzeigen lassen per Word VBA: Hallo zusammen, ich bin neu hier und versuche aktuell aus Word heraus eine Exceldatei zu öffnen. Das klappt auch alles schon wunderbar. Jetzt möchte ich gerne, wenn die Excel Datei geöffnet ist,...
  7. MsgBox Ja / Nein > Nein als Standard

    in Microsoft Excel Hilfe
    MsgBox Ja / Nein > Nein als Standard: Hallo nochmal Mit folgendem Code wird "verhindert" dass die gesperrten Zellen geändert werden. Nur nach Klick auf Ja oder Nein ist das möglich. Leider ist bei der MsgBox der JaButton als erstes...
  8. MsgBox wenn in Zeitintervall kein "x"

    in Microsoft Excel Hilfe
    MsgBox wenn in Zeitintervall kein "x": Hallo zusammen, bei einer Herausforderung komme ich einfach nicht weiter und brauche Hilfe! Ich möchte, das eine MsgBox erscheint, wenn im aktuellen Zeitintervall (ein Zeitintervall wäre 30 Min...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden