Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1576to1580
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

MsgBox - Position verändern

MsgBox - Position verändern
29.08.2017 11:56:22
STeve
Begrüße alle fleißigen und so hilfreichen Forumsteilnehmer recht herzlich.
Eine komplizierte BITTE an euch:
Benötige diesmal eine Zusammenführung von zwei fertigen Codes!!!
Dank (Piet) habe ich in folgender Datei den "SUCHE"-Button (befindet sich nur auf Blatt 1 (TWG) - sucht aber alle drei Blätter durch)optimieren können.
https://www.herber.de/bbs/user/115857.xls
Jeder Treffer wird grell grün eingefärbt. Bei "weitersuchen" nimmt die Zelle wieder die ursprüngliche Formatierung an und der nächste Treffer wird so grell angezeigt usw.
Die Start-Eingabe-Inputbox konnte ich leicht re. oben positionieren.
Aber die ausgegebenen MsgBoxen "weitersuchen/ja/nein" schlagen aber natürlich immer in der Mitte der Datei auf.
Bei Suche einer Straße liegt somit der gefundene Treffer immer hinter der Msgbox. Diese Box muss erst mit der Maus zur Seite gezogen werden damit man den Treffer sehen kann.
In folgender Datei (natürlich nicht von mir) kann ich über Eingabe von Werten in den Zellen B4 und B5 die x und y Position der MsgBox leicht vorgeben.
https://www.herber.de/bbs/user/115858.xlsm
Frage/Bitte:
Ist es möglich den Code der

Msgbox-Positionierungs-Datei

in die
"SUCHE"-Button-Datei
einzuarbeiten.
Besten Dank und wünsche inzwischen schönen Tag.
mfg STeve

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: MsgBox - Position verändern
29.08.2017 12:17:03
Nepumuk
Hallo Steve,
ein Beispiel zu basteln:
Option Explicit

Private Declare PtrSafe Function FindWindowA Lib "user32.dll" ( _
    ByVal lpClassName As String, _
    ByVal lpWindowName As String) As LongPtr
Private Declare PtrSafe Function SetTimer Lib "user32.dll" ( _
    ByVal hwnd As LongPtr, _
    ByVal nIDEvent As LongPtr, _
    ByVal uElapse As Long, _
    ByVal lpTimerFunc As LongPtr) As LongPtr
Private Declare PtrSafe Function KillTimer Lib "user32.dll" ( _
    ByVal hwnd As LongPtr, _
    ByVal nIDEvent As LongPtr) As Long
Private Declare PtrSafe Function SetWindowPos Lib "user32.dll" ( _
    ByVal hwnd As LongPtr, _
    ByVal hWndInsertAfter As LongPtr, _
    ByVal x As Long, _
    ByVal y As Long, _
    ByVal cx As Long, _
    ByVal cy As Long, _
    ByVal wFlags As Long) As Long

Private Const GC_CLASSNAMEMSDIALOG = "#32770"

Private Const SWP_NOSIZE = &H1&
Private Const SWP_NOZORDER = &H4&

Private Const BOX_TITLE = "Information"

Public Sub prcShowBox2()
    Call SetTimer(Application.hwnd, 0, 10, AddressOf prcTimer)
    Call MsgBox("Hallo, da bin ich", vbInformation, BOX_TITLE)
End Sub

Private Sub prcTimer(ByVal hwnd As LongPtr, ByVal nIDEvent As LongPtr, _
        ByVal uElapse As Long, ByVal lpTimerFunc As LongPtr)

    Call prcKillTimer
    Call prcSetWindowPos
End Sub

Private Sub prcKillTimer()
    Call KillTimer(Application.hwnd, 0)
End Sub

Private Sub prcSetWindowPos()
    Const POS_X As Long = 200&
    Const POS_Y As Long = 320&
    Dim lngptrBoxHwnd As Long
    lngptrBoxHwnd = FindWindowA(GC_CLASSNAMEMSDIALOG, BOX_TITLE)
    If lngptrBoxHwnd <> 0 Then
        Call SetWindowPos(lngptrBoxHwnd, 0, POS_X, POS_Y, 0&, 0&, _
            SWP_NOSIZE Or SWP_NOZORDER)
    End If
End Sub

Gruß
Nepumuk
Anzeige
AW: MsgBox - Position verändern
29.08.2017 12:42:30
STeve
Hi lieber Nepumuk......du überschätzt mich leicht. Hahahaha aber danke für dein Vertrauen.
Brauche noch Hilfe!!!
Habe deinen Code:
Public Sub prcShowBox2()....in ein Blatt eingefügt (dort einen cmd Button zum aufrufen erstellt) ...
...und die restlichen Codes in ein leeres Modul.
Frage 1 : ist das richtig?
...weil....
Frage 2:
Bei Klick auf den cmd- Button kommt:
Fehlermeldung: Fehler beim Kompilieren: Sub, Function oder Property erwartet ....
und
... AddressOf prcTimer ...wird markiert.
Danke und mfg
STeve
Anzeige
AW: MsgBox - Position verändern
29.08.2017 13:12:00
Nepumuk
Hallo Steve,
der gesamte Code gehört in ein Modul.
Gruß
Nepumuk
Probiere mal was in umsetzen kann....Danke
29.08.2017 13:22:38
STeve
Danke Nepumuk......für die schnelle Antwort. In der neu erstellten Datei klappt es natürlich so.
Jetzt werd ich mal basteln ob ich das in der Suchbutton-Datei einpflegen kann.
mfg STeve und noch schönen Tag.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige