Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1820to1824
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

Excel-Dialog "Suchen und Ersetzen"

Excel-Dialog "Suchen und Ersetzen"
22.03.2021 16:32:27
Jürgen
Hallo,
mit dem Befehl Application.CommandBars.ExecuteMso "FindDialogExcel" ruft man den Excel-Dialog "Suchen und Ersetzen" auf. Gibt es auch einen Befehl, mit dem man das bereits angezeigte Dialogfeld schließen oder zumindest das Eingabefeld "Suchen nach:" leeren kann?
Viele Grüße
Jürgen

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel-Dialog "Suchen und Ersetzen"
22.03.2021 17:18:06
onur
Die Frage ist, wozu?
Wofür brauchst du ein Makro, womit man ein Excel-Dialog "Suchen und Ersetzen" öffnen kann, wo man dann manuell etwas eingeben muss und dann noch eins zum Schliessen des Makros (bzw zum Resetten der Eingabefelder) ?
Wozu nicht direkt alles über VBA (ohne Dialog)?

AW: Excel-Dialog "Suchen und Ersetzen"
22.03.2021 22:06:47
Jürgen
Hallo onur,
vielen Dank für deine Antwort, ein anderes Forenmitglied hat mir einen Lösungsweg genannt.
Gruß Jürgen

AW: Excel-Dialog "Suchen und Ersetzen"
23.03.2021 08:45:53
Jürgen
Hallo onur,
als Nachlese: Du hattest letztendlich doch recht. Habe jetzt für die Suche eine Inputbox eingebaut und kann damit auch die weitere Bearbeitung erheblich vereinfachen. Danke für den Denkanstoß.
Gruß Jürgen

Anzeige
AW: Excel-Dialog "Suchen und Ersetzen"
22.03.2021 17:23:57
Nepumuk
Hallo Jürgen,
just for fun:
Option Explicit

Private Declare PtrSafe Function EnumWindows Lib "user32.dll" ( _
    ByVal lpEnumFunc As LongPtr, _
    ByVal lParam As LongPtr) As Long
Private Declare PtrSafe Function GetWindowTextA Lib "user32.dll" ( _
    ByVal hwnd As LongPtr, _
    ByVal lpString As String, _
    ByVal cch As Long) As Long
Private Declare PtrSafe Function GetWindowTextLengthA Lib "user32.dll" ( _
    ByVal hwnd As LongPtr) As Long
Private Declare PtrSafe Function GetClassNameA Lib "user32.dll" ( _
    ByVal hwnd As LongPtr, _
    ByVal lpClassName As String, _
    ByVal nMaxCount As Long) As Long
Private Declare PtrSafe Function PostMessageA Lib "user32.dll" ( _
    ByVal hwnd As LongPtr, _
    ByVal wMsg As Long, _
    ByVal wParam As LongPtr, _
    ByVal lParam As LongPtr) As Long

Private Const WM_CLOSE As Long = &H10
Private Const GC_CLASSNAMEDIALOG As String = "bosa_sdm_XL9"

Public Sub Ein()
    Application.CommandBars.ExecuteMso "FindDialogExcel"
End Sub

Public Sub Aus()
    Call EnumWindows(AddressOf WindowCallBack, ByVal 0)
    Cells.Find ""
End Sub

Private Function WindowCallBack(ByVal lngptrHwnd As LongPtr, ByVal lngptrParam As LongPtr) As LongPtr
    Dim strCaption As String, strClassName As String
    Dim lngReturn As Long
    strClassName = Space$(256)
    lngReturn = GetClassNameA(lngptrHwnd, strClassName, 256)
    If Left$(strClassName, lngReturn) = GC_CLASSNAMEDIALOG Then
        lngReturn = GetWindowTextLengthA(lngptrHwnd)
        strCaption = Space$(lngReturn)
        Call GetWindowTextA(lngptrHwnd, strCaption, lngReturn + 1)
        If strCaption = "Suchen und Ersetzen" Then
            Call PostMessageA(lngptrHwnd, WM_CLOSE, 0, 0)
            DoEvents
            WindowCallBack = 0
        Else
            WindowCallBack = 1
        End If
    Else
        WindowCallBack = 1
    End If
End Function

Gruß
Nepumuk

Anzeige
AW: Excel-Dialog "Suchen und Ersetzen"
22.03.2021 22:09:23
Jürgen
Hallo Nepomuk,
vielen Dank für deine Antwort, übersteigt aber bei weitem meine VBA-Kenntnisse. Ein anderes Mitglied hat mir einen Lösungsweg genannt.
Gruß Jürgen

AW: Excel-Dialog "Suchen und Ersetzen"
22.03.2021 19:17:55
Daniel
HI
zur not so:
 Application.CommandBars.ExecuteMso "FindDialogExcel"
SendKeys "{HOME}"
SendKeys "+{END}"
SendKeys "{DEL}"
ACHTUNG: ein Makro mit diesem Code muss immer von Excel heraus über das Menü oder einen Button gestartet werden.
Startest du das Makro aus dem Editor oder testets im Einzelstep, wirken die Tastatureingaben auf den Editor und eine Zeile deines Codes wird gelöscht!
Gruß Daniel

Anzeige
AW: Excel-Dialog "Suchen und Ersetzen"
22.03.2021 22:02:41
Jürgen
Hallo Daniel,
vielen Dank, hat mir sehr geholfen.
Gruß Jürgen

313 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige