MsgBox

Dieses Thema im Forum "Excel und VBA" wurde erstellt von Jenne, 24 August 2007.

  1. Jenne

    Jenne
    Expand Collapse
    New Member

    Registriert seit:
    14 Januar 2007
    Beiträge:
    182
    Zustimmungen:
    0
    Hi,

    ich hab da mal eine, wie ich finde, außergewöhliche Frage.

    Ist es möglich die Button einer MsgBox individuell zu beschriften?

    z.B.
    Code:
    
    MsgBox "Wollen Sie mit oder ohne?", vbQuestion, "Die Frage der Fragen"
    
    
    Dabei wäre es natürlich optimal, wenn man die Button "mit" und "ohne" hätte. Ist das möglich? :1:

    Gruß
    Jenne
     
  2. bst

    bst
    Expand Collapse
    <font color="#FF0000">Excel Moderator</font><br><i

    Registriert seit:
    26 Oktober 2004
    Beiträge:
    3.063
    Zustimmungen:
    1
    Hi Jenne,

    M.E. geht das nicht. Zumindest nicht ohne massiven Einsatz der Win-API.

    Nimm einer Userform, da geht das vermutlich leichter.

    Du musst eben ggf. die Größe der Userform und des Textfeldes an die Länge der Mitteilung anpassen.

    cu, Bernd
     
  3. Jenne

    Jenne
    Expand Collapse
    New Member

    Registriert seit:
    14 Januar 2007
    Beiträge:
    182
    Zustimmungen:
    0
    Hi,

    danke für die Antwort.
    Ich dachte mir schon, dass dies so ohne weiteres nicht möglich ist. Aber ein Versuch war es wert.

    Danke & Gruß
    Jenne
     
  4. bst

    bst
    Expand Collapse
    <font color="#FF0000">Excel Moderator</font><br><i

    Registriert seit:
    26 Oktober 2004
    Beiträge:
    3.063
    Zustimmungen:
    1
    Hi Jenne,

    wenn ich mich denn richtig erinnere hat Nepumuk sowas mal gemacht. Ich schau mal ob ich das noch finde. Könnte aber etwas dauern ...

    cu, Bernd

    Nachtrag: Googlen hilft manchmal auch ;)

    http://www.vbarchiv.net/archiv/tipp_687.html
     
    #4 bst, 24 August 2007
    Zuletzt bearbeitet: 24 August 2007
  5. RO_SCH

    RO_SCH
    Expand Collapse
    Moderator

    Registriert seit:
    27 August 2006
    Beiträge:
    2.463
    Zustimmungen:
    14
    Hallo Leute,

    der Tip von Bernd funktioniert zwar, ist aber unter VBA mit Vorsicht zu genießen .!.!.!

    Da VBA keinen hWnd zur Verfügung stellt, müßte man im Startaufruf Me.hWnd = vbNullstring setzen, damit es überhaupt funktioniert.:10:

    Davon rate ich aber ab, da hier ohne hWnd der CoolBox_TimerEvent-Aufruf nicht korrekt über den AddressOf-Aufruf abgearbeitet werden kann, könnte also sein, dass man damit versehendlich sein Excel abschießt.

    Ist aber unangenehm, wenn man vorher nicht gespeichert hat ! :2:

    Die API fragt da nämlich leider vorher nicht nach !

    Das irgendwas im Hintergrund nach dem ersten starten des Aufrufes nicht stimmt, kann in der VBE an der "zitternden" Titelleiste leicht festgestellt werden.:12:

    PS: Viel Spaß damit :21:
     
  6. bst

    bst
    Expand Collapse
    <font color="#FF0000">Excel Moderator</font><br><i

    Registriert seit:
    26 Oktober 2004
    Beiträge:
    3.063
    Zustimmungen:
    1
    Hi Roland,

    Wenn schon, dann IMHO eher auf 0& bzw. CLng(0), nicht auf vbNullstring.

    Oder aber den Windows-Handle von Excel bestimmen und den übergeben.

    a) via GetActiveWindow

    b) via FindWindow("xlMain", vbNullString)

    Dann sollte das eigentlich kein Problem mehr sein, oder?

    cu, Bernd
     
  7. RO_SCH

    RO_SCH
    Expand Collapse
    Moderator

    Registriert seit:
    27 August 2006
    Beiträge:
    2.463
    Zustimmungen:
    14
    Hi Leute,

    Bernd hat wieder mal, selbstverständlich, natürlich, sowieso RECHT .!.!.!

    Was zu erwarten war - :48:

    Es reicht natürlich Me.hWnd gegen GetActiveWindow auszutauschen.
    PHP:
    Sub MsgBox_Show()
    Dim nButton As Long

    ' MsgBox mit 3 Buttons
    nButton = CoolBox(GetActiveWindow, _
      "CoolMsgBox mit beliebiger Buttonbeschriftung", _
      "CoolBox", _
      "Supi!", "Prima!", "Exit!", _
      CoolBoxIcon.Information)

    Auswertung des gewählten Buttons
    If nButton 3 Then 
      End
    End 
    If
    Schon geht es !!! Natürlich ausgiebig getestet .!.!.!
     
  8. Jenne

    Jenne
    Expand Collapse
    New Member

    Registriert seit:
    14 Januar 2007
    Beiträge:
    182
    Zustimmungen:
    0
    Hi,

    das ich damit eine derartige Lawine lostrete hätte ich nicht gedacht.

    Vielen Dank für euer Input. Ich werde das sofort mal ausprobieren.

    Gruß
    Jenne
     
  9. Mayer

    Mayer
    Expand Collapse
    New Member

    Registriert seit:
    9 November 2017
    Beiträge:
    1
    Zustimmungen:
    0
    Hallo Leute,

    bitte könnte mir vllt einer von Euch Cracks einen kleinen Tipp geben?


    Ich würde gerne die Buttons der Msgbox selbst beschriften, bekomme es aber nach vielen Stunden herumprobieren noch nicht hin.


    RO_Sch hatte bei seiner letzten Antwort hier vor 10 Jahren geschrieben ( siehe oben):


    " Es reicht natürlich Me.hWnd gegen GetActiveWindow auszutauschen."


    Kann mir jemand sagen wie ich das austauschen muss, damit der daruf geschriebene Code in meinem Standard VBA funktioniert?

    Wie ist das gemeint? "Austauschen" Das kenne ich noch nicht. Was bedeuten die Befehle Me.hWnd und GetActiveWindow eigentlich?

    Habe auch schon gegoogelt und werde weiter suchen..

    Danke im Voraus vielmals!

    Gruß Mayer
     
  10. RO_SCH

    RO_SCH
    Expand Collapse
    Moderator

    Registriert seit:
    27 August 2006
    Beiträge:
    2.463
    Zustimmungen:
    14
    Hi,

    ist doch nicht so schwer zu verstehen. ;)

    verwende den Code in diesem Link und verwendest anstatt der Zeile
    nButton = CoolBox(Me.hWnd, _
    diese
    nButton = CoolBox(GetActiveWindow, _

    Ganz Easy ...:p
     
Die Seite wird geladen...

Diese Seite empfehlen