Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Application.Dialogs().Show ??? Parameters

Forumthread: Application.Dialogs().Show ? Parameters

Application.Dialogs().Show ? Parameters
08.06.2004 09:43:36
kdosi
Hallo Forum,
ich habe ein Problem mit der Show Methode von dem FormulaFind Dialog.
Nachfolgender Code laesst das Dialogfenster erscheinen, was ist auch OK. Problem ist dabei, dass ich moechte, dass das Dialogfenster in dem ComboBox "Suchen" den Wert "ByColumns" vorgewaehlt hat.
Also : wie muss man den Argument der Show Methode aendern, damit nach dem das Dialogfenster erscheinnt, der Wert der Suche auf "ByColumns" vorgewaehlt ist? Oder anders noch : wie kann man den Wert in dem ComboBox "Suchen" durch die Show Methode aendern?
Danke! Mit freundlichen Gruessen kdosi aus CZ.
==============================================================================
' Code :

Private Sub FindDlg_Show()
Dim dlg As Dialog
Columns(2).Select
Set dlg = Application.Dialogs(xlDialogFormulaFind)
' text,
' in_num,
' at_num,
' by_num,
' dir_num,
' match_case,
' match_byte
Call dlg.Show(arg1:="Text", _
arg2:=True, _
arg3:=True, _
arg4:=xlWhole, _
arg5:=xlByColumns, _
arg6:=xlNext, _
arg7:=True)
End Sub

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Application.Dialogs().Show ? Parameters
08.06.2004 10:12:06
Hans
Hallo kdosi,
aus einem mir unerfindlichen Grund ignoriert Excel das 5. Argument. An Deiner Stelle würde ich allerdings statt mit dem eingebauten Dialog mit der Find-Methode arbeiten.
Gruss hans
AW: Application.Dialogs().Show ? Parameters
kdosi
Hallo Hans,
ja, es ist merkwuerdig, Schade. Also Du denkst, dass man einen UserForm erstellen koennte, der ganz wie das DialogFenster aussieht, und die Werte aus dieser UserForm werden dann in die Find Methode uebergeben? Gruss kdosi
Anzeige
;
Anzeige

Infobox / Tutorial

Anwendung der Dialogmethoden in Excel VBA


Schritt-für-Schritt-Anleitung

  1. Öffne den VBA-Editor in Excel, indem Du ALT + F11 drückst.

  2. Erstelle ein neues Modul:

    • Klicke mit der rechten Maustaste auf "VBAProject" und wähle "Einfügen" > "Modul".
  3. Füge den folgenden Code ein:

    Private Sub FindDlg_Show()
        Dim dlg As Dialog
        Columns(2).Select
        Set dlg = Application.Dialogs(xlDialogFormulaFind)
        Call dlg.Show(arg1:="Text", _
                      arg2:=True, _
                      arg3:=True, _
                      arg4:=xlWhole, _
                      arg5:=xlByColumns, _
                      arg6:=xlNext, _
                      arg7:=True)
    End Sub
  4. Starte das Makro:

    • Gehe zurück zu Excel, drücke ALT + F8, wähle FindDlg_Show und klicke auf "Ausführen".

Dieser Code öffnet das Dialogfenster für die Formel-Suche mit den angegebenen Argumenten. Beachte, dass das 5. Argument xlByColumns möglicherweise ignoriert wird, wie im Forum erwähnt.


Häufige Fehler und Lösungen

  • Problem: Das Dialogfenster öffnet sich, aber das 5. Argument wird ignoriert.
    • Lösung: Statt die Application.Dialogs zu verwenden, ziehe in Betracht, eine eigene UserForm zu erstellen. Dies gibt Dir die Kontrolle über die Werte in den ComboBoxen.

Alternative Methoden

Eine Alternative zur Verwendung der Application.Dialogs ist die Implementierung einer UserForm. Damit kannst Du die Benutzeroberfläche komplett anpassen und die Werte direkt steuern.

  1. Erstelle eine UserForm:
    • Im VBA-Editor, klicke mit der rechten Maustaste auf "VBAProject" und wähle "Einfügen" > "UserForm".
  2. Füge Steuerelemente hinzu (z. B. TextBox, ComboBox).
  3. Programmiere die Logik hinter der UserForm, um die Find-Methode aufzurufen.

Praktische Beispiele

Hier ist ein Beispiel, wie Du eine UserForm erstellen kannst, die ähnlich wie das Excel-Dialogfenster aussieht:

Private Sub btnFind_Click()
    Dim searchText As String
    searchText = txtSearch.Text
    ' Hier kannst Du die Find-Methode aufrufen
    Cells.Find(What:=searchText, LookIn:=xlValues, LookAt:=xlWhole).Activate
End Sub

In diesem Beispiel wird der Text aus einer TextBox (txtSearch) verwendet, um eine Suche durchzuführen.


Tipps für Profis

  • Optimierung: Verwende Application.Dialogs(xlDialogSaveAs).Show für das Speichern von Dateien, um eine benutzerfreundliche Oberfläche anzubieten.
  • Debugging: Wenn Du mit vba application.dialogs arbeitest, nutze Debug.Print zur Überprüfung von Argumenten und zwischengespeicherten Werten.

FAQ: Häufige Fragen

1. Kann ich andere Dialoge wie xlDialogPrint oder xlDialogSendMail verwenden? Ja, Du kannst die Application.Dialogs(xlDialogPrint).Show oder Application.Dialogs(xlDialogSendMail).Show Methoden verwenden, um die entsprechenden Dialoge zu öffnen.

2. Warum wird das 5. Argument in meinem Dialog ignoriert? Das ist ein bekanntes Problem in einigen Excel-Versionen. In solchen Fällen ist die Erstellung einer UserForm oft die bessere Lösung, um die benötigten Funktionen zu implementieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige