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

Forumthread: vba mit Inputbox in Spalte Zahlen suchen

vba mit Inputbox in Spalte Zahlen suchen
18.03.2019 13:00:30
Kerstin
Hallo liebe Herberer!
Ich sitze schon seit Tagen an einem VBA-Code und bekomme ihn nicht hin... Ihr werdet wahrscheinlich die Hände über dem Kopf zusammen schlagen, weil es soooo einfach ist, aber ich kann's nicht...
Aaaalso, ich möchte mit einer Inputbox (Buchnummer suchen) in Spalte "A" ebendiese Nummer suchen. Wenn gefunden, dann soll in der gefundenen Zeile die Zelle in Spalte "E" markiert werden und ein "x" hineingeschrieben werden. Falls es diese Buchnummer in Spalte "A" nicht gibt, dann soll eine MsgBox erscheinen mit "Buchnummer nicht gefunden".
Die Codes, die ich bisher gefunden habe, funktionieren nur teilweise, d.h. entweder kann nur Text gefunden werden, oder die MsgBox erscheint nicht...
Schon mal vielen lieben Dank für eure Hilfe!
Viele Grüße
Kerstin
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: vba mit Inputbox in Spalte Zahlen suchen
18.03.2019 13:36:19
Alexandra
Hi Kerstin,
Sub test()
Dim c As Range
Dim suchBegriff As String
suchBegriff = InputBox("Buchnummer eingeben")
Set c = ActiveSheet.Range("A:A").Find(suchBegriff, LookIn:=xlValues, LookAt:=xlWhole)
If Not c Is Nothing Then
c.Offset(0, 4).Value = "x"
Else
MsgBox "Buchnummer nicht vorhanden!"
End If
End Sub
So sollte es passen!
LG
Alexandra
Anzeige
AW: vba mit Inputbox in Spalte Zahlen suchen
18.03.2019 18:10:35
Kerstin
Huhu Alexandra!
Besten Dank für Deine Antwort! Es klappt!!!!! Juchuuuu!
Liebe Grüße
Kerstin
AW: vba mit Inputbox in Spalte Zahlen suchen
18.03.2019 13:36:46
Alexandra
Hi Kerstin,
Sub test()
Dim c As Range
Dim suchBegriff As String
suchBegriff = InputBox("Buchnummer eingeben")
Set c = ActiveSheet.Range("A:A").Find(suchBegriff, LookIn:=xlValues, LookAt:=xlWhole)
If Not c Is Nothing Then
c.Offset(0, 4).Value = "x"
Else
MsgBox "Buchnummer nicht vorhanden!"
End If
End Sub
So sollte es passen!
LG
Alexandra
Anzeige
AW: vba mit Inputbox in Spalte Zahlen suchen
18.03.2019 13:42:33
Johannes
Hi Kerstin,
so vielleicht?
Sub BuchnummerSuchen()
Dim zelle As Range
Dim vBuchnummer As String
On Error GoTo ErrHandler
vBuchnummer = InputBox("Geben Sie die Buchnummer ein: ", "Titel")
For Each zelle In Range("A1:A200") 'Hier musst du den Bereich noch spezifizieren
If zelle.Value = vBuchnummer Then
Range("E" & zelle.Value) = "x"
Else
MsgBox "Buchnummer konnte nicht gefunden werden", "Titel"
End If
Next zelle
ErrHandler:
Exit Sub
End Sub

Anzeige
AW: vba mit Inputbox in Spalte Zahlen suchen
18.03.2019 13:44:17
Johannes
Noch einen kleinen Fehler entdeckt. So müsste es aber passen :-)
Sub BuchnummerSuchen()
Dim zelle As Range
Dim vBuchnummer As String
On Error GoTo ErrHandler
vBuchnummer = InputBox("Geben Sie die Buchnummer ein: ", "Titel")
For Each zelle In Range("A1:A200") 'Hier musst du den Bereich noch spezifizieren
If zelle.Value = vBuchnummer Then
Range("E" & zelle.Row) = "x"
Else
MsgBox "Buchnummer konnte nicht gefunden werden", "Titel"
End If
Next zelle
ErrHandler:
Exit Sub
End Sub

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Mit VBA und InputBox in Excel nach Werten in einer Spalte suchen


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu:

    • Klicke im Menü auf Einfügen > Modul.
  3. Kopiere den folgenden Code in das Modul:

    Sub BuchnummerSuchen()
       Dim zelle As Range
       Dim vBuchnummer As String
       On Error GoTo ErrHandler
       vBuchnummer = InputBox("Geben Sie die Buchnummer ein: ", "Titel")
       For Each zelle In Range("A1:A200") 'Hier musst du den Bereich anpassen
           If zelle.Value = vBuchnummer Then
               Range("E" & zelle.Row).Value = "x"
               Exit Sub
           End If
       Next zelle
       MsgBox "Buchnummer nicht gefunden!", vbExclamation, "Titel"
       Exit Sub
    ErrHandler:
       MsgBox "Ein Fehler ist aufgetreten.", vbCritical, "Fehler"
    End Sub
  4. Anpassen des Bereichs: Stelle sicher, dass Du den Bereich in der For-Schleife (A1:A200) anpasst, um die gewünschten Zellen zu durchsuchen.

  5. Führe das Makro aus: Gehe zurück zu Excel und drücke ALT + F8, wähle BuchnummerSuchen und klicke auf Ausführen.


Häufige Fehler und Lösungen

  • Problem: Die MsgBox erscheint, obwohl die Buchnummer vorhanden ist.

    • Lösung: Stelle sicher, dass Du den LookAt-Parameter korrekt setzt. In der oben angegebenen Lösung wird der exakte Wert gesucht. Wenn Du teilweise Übereinstimmungen möchtest, ändere LookAt:=xlWhole auf LookAt:=xlPart.
  • Problem: Der Wert wird nicht in Spalte E geschrieben.

    • Lösung: Vergewissere Dich, dass Du Range("E" & zelle.Row).Value = "x" korrekt angibst. Hier wird die Zeilennummer der gefundenen Zelle verwendet.

Alternative Methoden

Eine andere Methode, um Excel VBA zu nutzen, um in einer Spalte zu suchen, besteht darin, die Find-Methode zu verwenden. Hier ist ein Beispiel:

Sub SuchenMitFind()
    Dim c As Range
    Dim suchBegriff As String
    suchBegriff = InputBox("Buchnummer eingeben")
    Set c = ActiveSheet.Range("A:A").Find(suchBegriff, LookIn:=xlValues, LookAt:=xlWhole)

    If Not c Is Nothing Then
        c.Offset(0, 4).Value = "x"
    Else
        MsgBox "Buchnummer nicht vorhanden!"
    End If
End Sub

Dieser Code sucht effizient in der gesamten Spalte A und kann leicht angepasst werden.


Praktische Beispiele

Wenn Du Telefonnummern rückwärts suchen möchtest, kannst Du die StrReverse-Funktion verwenden, um die Eingabe umzudrehen, bevor Du nach ihr suchst. Hier ein Beispiel:

Sub TelefonNummerSuchen()
    Dim c As Range
    Dim suchBegriff As String
    suchBegriff = StrReverse(InputBox("Geben Sie die Telefonnummer ein: "))

    Set c = ActiveSheet.Range("A:A").Find(suchBegriff, LookIn:=xlValues, LookAt:=xlWhole)

    If Not c Is Nothing Then
        c.Offset(0, 4).Value = "x"
    Else
        MsgBox "Telefonnummer nicht vorhanden!"
    End If
End Sub

Tipps für Profis

  • Verwende Fehlerbehandlung in Deinen Makros, um unerwartete Probleme zu vermeiden. Nutze On Error GoTo ErrHandler und spezifiziere, was geschehen soll, wenn ein Fehler auftritt.
  • Halte Deine Makros modular. Teile komplexe Aufgaben in kleinere Subroutinen auf, um die Wartbarkeit zu erhöhen.
  • Experimentiere mit Datenvalidierung, um sicherzustellen, dass nur gültige Buchnummern eingegeben werden.

FAQ: Häufige Fragen

1. Wie kann ich den gesuchten Wert in einer anderen Spalte anzeigen?
Du kannst die Offset-Methode verwenden, um in der gewünschten Spalte einen Wert zu setzen, z.B. c.Offset(0, 4).Value = "x".

2. Was mache ich, wenn die Buchnummer nicht eindeutig ist?
In diesem Fall kannst Du die Find-Methode in einer Schleife verwenden, um alle Vorkommen zu finden und zu verarbeiten. Alternativ kannst Du eine Liste der gefundenen Werte anzeigen.

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