Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

InputBox (Suche) ohne "Abbrechen"-Möglichkeit

Forumthread: InputBox (Suche) ohne "Abbrechen"-Möglichkeit

InputBox (Suche) ohne "Abbrechen"-Möglichkeit
16.12.2003 14:45:38
Dominik
Hallo zusammen,

ich bin ein ziemlicher Neuling was VBA angeht und bastel gerade an einer Suchfunktion herum. Wenn man auf einen Button klickt öffnet sich die Standard-Input-Box um in einer Tabelle nach einem Begriff zu suchen. Klappt auch alles. Nur möchte ich in der Input-Box den Button "Abbrechen" verschwinden lassen, so dass nur noch der "OK"-Button vorhanden ist. Ist das möglich und wenn ja wie?

Wäre für Hilfe dankbar.

Ciao,

Dominik
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: InputBox (Suche) ohne "Abbrechen"-Möglichkeit
16.12.2003 14:52:42
Thomas H.
Hallo Dominik!

Soweit ich weiß wird bei einer kann bei einer inputbox das abbrechen nicht weggenommen werden... Du müsstest es über eine userform probieren...

TH
AW: InputBox (Suche) ohne "Abbrechen"-Möglichkeit
16.12.2003 15:20:29
Dominik
Danke dir Thomas... hm, wenn's so nicht geht versuch ich's anders. Das Problem bei der ganzen Sache ist folgendes: Nach Druck auf einen Button in einem Userform wechselt das Tabellenblatt, die Userform wird per "Hide" versteckt und eine Input-Box öffnet sich. Gibt man hier einen Suchbegriff ein wechselt das Tabellenblatt, eine bestimmte Spalte wird nach dem Suchbegriff durchsucht und eine andere Zelle der Zeile in der der Suchbegriff gefunden wird in einer Message-Box angezeigt - mit der Option weiterzusuchen. Mein Problem ist nun folgendes: Klicke ich ohne einen Suchbegriff einzugeben in der Input-Box auf "Abbrechen" wird die Massage-Box mit der Option weiterzusuchen trotzdem geöffnet (diesmal natürlich leer). Wie kann ich das umgehen? Hier mein Code:


Sub CommandButtonSuche_Click()
Sheets("Tabelle1").Select
UserFormSuche.Hide
Dim Suchbegriff As Range, Suchtext$, Bereich$, Ausgang$
Dim ZuDurchsuchendeSpalte%, ZuZeigendeSpalte%, weiter%
Suchtext = "Beispieltext"
ZuDurchsuchendeSpalte = 9
ZuZeigendeSpalte = 1
Suchtext = InputBox("Bitte geben Sie den zu suchenden Begriff ein!", "Suchtext")
Set Suchbegriff = Columns(ZuDurchsuchendeSpalte).Find(what:=Suchtext)
If Suchbegriff Is Nothing Then Exit 

Sub
weiter = MsgBox(Cells(Suchbegriff.Row, ZuZeigendeSpalte) & Chr(10) & "Soll weitergesucht werden?", vbYesNo + vbQuestion, Suchtext & " - Weitersuchen?")
If weiter = vbNo Then Exit Sub
Bereich = Suchbegriff.Address
Ausgang = Bereich
Do While Suchbegriff Is Nothing = False
Set Suchbegriff = Columns(ZuDurchsuchendeSpalte).Find(what:=Suchtext, After:=Range(Ausgang))
If Suchbegriff.Address = Bereich Then Exit Sub
weiter = MsgBox(Cells(Suchbegriff.Row, ZuZeigendeSpalte) & Chr(10) & "Soll weitergesucht werden?", vbYesNo + vbQuestion, Suchtext & " - Weitersuchen?")
If weiter = vbNo Then Exit Sub
Ausgang = Suchbegriff.Address
Loop
End Sub


Gruß,

Dominik
Anzeige
;
Anzeige

Infobox / Tutorial

InputBox für VBA: Abbrechen-Button entfernen


Schritt-für-Schritt-Anleitung

Um in VBA eine InputBox ohne den "Abbrechen"-Button zu erstellen, musst Du eine UserForm verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. UserForm erstellen:

    • Öffne den Visual Basic for Applications (VBA) Editor mit ALT + F11.
    • Klicke im Menü auf Einfügen und wähle UserForm.
  2. UserForm gestalten:

    • Füge ein Textfeld (TextBox) hinzu, um den Suchbegriff einzugeben.
    • Füge einen Button (CommandButton) hinzu, der die Suche startet.
    • Optional: Füge ein Label hinzu, um Anweisungen anzuzeigen.
  3. Code für die UserForm hinzufügen:

    • Klicke doppelt auf den Button, um das Codefenster zu öffnen.
    • Füge den folgenden Code ein:
    Private Sub CommandButton1_Click()
       Dim Suchbegriff As Range
       Dim Suchtext As String
       Dim Bereich As String
       Dim ZuDurchsuchendeSpalte As Integer
       Dim ZuZeigendeSpalte As Integer
       Dim weiter As Integer
    
       Suchtext = Me.TextBox1.Value
       ZuDurchsuchendeSpalte = 9
       ZuZeigendeSpalte = 1
    
       If Suchtext = "" Then
           MsgBox "Bitte geben Sie einen Suchbegriff ein.", vbExclamation
           Exit Sub
       End If
    
       Set Suchbegriff = Columns(ZuDurchsuchendeSpalte).Find(what:=Suchtext)
       If Suchbegriff Is Nothing Then
           MsgBox "Suchbegriff nicht gefunden.", vbInformation
           Exit Sub
       End If
    
       Bereich = Suchbegriff.Address
       weiter = MsgBox(Cells(Suchbegriff.Row, ZuZeigendeSpalte) & Chr(10) & "Soll weitergesucht werden?", vbYesNo + vbQuestion, Suchtext & " - Weitersuchen?")
       If weiter = vbNo Then Exit Sub
    
       ' Nachdem Du hier die Logik zur weiteren Suche implementierst...
    End Sub
  4. UserForm aufrufen:

    • Um die UserForm aufzurufen, kannst Du einen weiteren Sub erstellen:
    Sub ShowSearchForm()
       UserForm1.Show
    End Sub
  5. Testen:

    • Führe den Sub ShowSearchForm aus, um die UserForm anzuzeigen.

Häufige Fehler und Lösungen

  • Fehler: Die UserForm öffnet sich nicht.

    • Lösung: Stelle sicher, dass der Sub ShowSearchForm korrekt aufgerufen wird.
  • Fehler: Suchbegriff wird nicht gefunden.

    • Lösung: Überprüfe, ob der Suchtext in der richtigen Spalte vorhanden ist und die Spaltenindexnummer korrekt ist.
  • Fehler: Eingabe wird nicht erkannt.

    • Lösung: Stelle sicher, dass das Textfeld (TextBox) korrekt benannt ist und der Code darauf zugreift.

Alternative Methoden

Falls Du eine einfachere Lösung suchst, kannst Du auch die Standard-InputBox verwenden, jedoch wird der "Abbrechen"-Button nicht entfernt. Eine Alternative wäre die Verwendung von MsgBox für die Eingabeaufforderung, aber dies ist weniger benutzerfreundlich.


Praktische Beispiele

Hier ist ein Beispiel zur Verwendung der UserForm in einem echten Szenario:

Sub CommandButtonSuche_Click()
    ' Hier wird die UserForm aufgerufen
    ShowSearchForm
End Sub

Das Beispiel zeigt, wie Du die UserForm in einem bestehenden VBA-Projekt integrierst, um eine benutzerfreundliche Suche zu ermöglichen.


Tipps für Profis

  • Verwende ComboBox anstelle von TextBox, um die Suche zu verbessern und dem Benutzer bereits eingegebene Suchbegriffe anzubieten.
  • Füge eine Option zum Schließen der UserForm hinzu, um die Benutzererfahrung zu verbessern.
  • Optimiere die Suchfunktion mit einer For Each-Schleife, um mehrere Spalten gleichzeitig zu durchsuchen.

FAQ: Häufige Fragen

1. Frage
Kann ich die UserForm anpassen, um mehr als nur einen Suchbegriff einzugeben?
Antwort: Ja, Du kannst mehrere TextBoxen für verschiedene Suchkriterien hinzufügen.

2. Frage
Wie kann ich die UserForm schließen, wenn der Benutzer auf "Abbrechen" klickt?
Antwort: Du kannst einen zusätzlichen Button für das Schließen der UserForm hinzufügen und den entsprechenden Code implementieren.

3. Frage
Welche Excel-Version benötige ich für die Verwendung von VBA?
Antwort: VBA ist in den meisten modernen Excel-Versionen verfügbar, einschließlich Excel 2010 und neuer.

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