1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Excel 2003 / Suchen-Dialog aufrufen mittels Makro

Discussion in 'Office-Programme' started by brum, Aug 23, 2007.

Thread Status:
Not open for further replies.
  1. brum

    brum Kbyte

    Hallo zusammen

    Ich habe schon wieder eine Frage.

    Gibt es eine Möglichkeit, den Suchen-Dialog (so wie ich ihn über Bearbeiten > Suchen aufrufen kann) aus einem Makro heraus aufrufen. (Ich denke, es ist möglich. Wenn ich mich richtig erinnere, konnte ich das im Excel 5 machen.)

    Eine andere Möglichkeit wäre mittels SendKeys "%bs" eine Tastenkombination zu senden. Leider funktioniert das nicht richtig.

    Gruss
    Bruno
     
  2. bahnrat

    bahnrat Kbyte

    Hallo!

    Mit der Zeile Application.CommandBars.FindControl(ID:=1849).Execute rufst Du den Dialog auf.

    Gruß, Rene
     
  3. brum

    brum Kbyte

    Besten Dank für die Info. Funktioniert!

    Noch eine Nachfrage: Gibt es eine Übersicht über die IDs (falls ich das noch für einen anderen Menübefehl bräuchte) oder wie kann man diese ID herausfinden?

    Gruss
    Bruno


    PS: Hab jetzt gerade herausgefunden, dass man die ID ja gar nicht braucht . Man kann alternativ auch diesen Code verwenden:

    Code:
    Application.CommandBars("Worksheet Menu Bar").Controls("&Bearbeiten").Controls("Suchen...").Execute
     
  4. Beverly

    Beverly Halbes Megabyte

    Hi Bruno,

    das geht auch, indem man den Dialog direkt aufruft

    Code:
    Application.Dialogs(xlDialogFormulaFind).Show
    Schau mal in die VBA-Hilfe zum Stichwort XlBuiltInDialog-Enumeration. Dort sind alle Dialoge aufgeführt.
     
  5. bahnrat

    bahnrat Kbyte

    xlDialogFormulaFind oder xlDialogFormulaReplace kann ich nicht empfehlen. Diese setzen nämlich die normale Suchen-Funktion über Bearbeiten->Suchen außer Kraft. Erst nach einem Excel-Neustart kann man diesen Dialog wieder benutzen. Im Übrigen benutzt Du bei SendKeys die falsche Tastenkombination. Richtig heisen müsste es: Application.SendKeys "^f" (STRG+F)
     
  6. Beverly

    Beverly Halbes Megabyte

    Hi,

    das kann ich bei mir (Excel2002 und 2007) nicht nachvollziehen. Der Suchen- bzw. Ersetzen-Dialog kann auch nach dem Ausführen von Application.Dialogs(xlDialogFormulaFind).Show nach wie vor von Hand aufgerufen werden, ohne dass Excel vorher geschlossen werden muss.
    Bei Excel2007 wird der mittels Code aufgerufene Dialog nur ein wenig eigenartig angezeigt, indem die Aufschriften der Buttons z.T. in Englisch und z.T. in Deutsch sind.
     
  7. brum

    brum Kbyte

    @Beverly: In Word habe ich auch schon nach diesem Schema eine Öffnen-Auswahl gemacht. Hätte ich also auch draufkommen können.

    Meine Feststellung bei diesen beiden Varianten ist folgende:

    1. Bei Application.CommandBars.FindControl(ID:=1849).Execute kommt genau die Dialogbox wie über das Menü (Suchen und Ersetzen, mit Register).

    2. Bei Application.Dialogs(xlDialogFormulaFind).Show erscheint ein Suchen-Dialog wie er bei Excel97 war (nur Suchen, ohne Register aber mit Button Ersetzen).

    Danke nochmals.

    Gruss
    Bruno
     
Thread Status:
Not open for further replies.

Share This Page