Live-Forum - Die aktuellen Beiträge
Datum
Titel
20.06.2025 08:39:33
19.06.2025 20:41:29
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Variable in einer Spalte suchen mit VBA

Forumthread: Variable in einer Spalte suchen mit VBA

Variable in einer Spalte suchen mit VBA
19.01.2004 18:35:24
Toco
Hallo!

Ich brauche ein Makro, dass den als Variable gespeicherten Inhalt einer Zelle in einer Spalte sucht und die Zeile in der er es findet in einer Variable wieder ausgiebt.
Kann mir jemand helfen? Habe Makroaufzeichnung probiert aber da bringt er schon eine Fehlermeldung wenn ich die Spalte selektiere (Columns("B:B").Select)

Hier der ganze aufgezeichnete Code:
Columns("B:B").Select
Selection.Find(What:= , After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
Danke!
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Variable in einer Spalte suchen mit VBA
19.01.2004 19:01:49
Knut
Wo ist die Variable?
Knut
AW: Variable in einer Spalte suchen mit VBA
19.01.2004 19:07:14
toco
Die lese ich vorher ein:
temp = Worksheets("temp").Cells(i + 6, found).Value
also temp ist die variable die im suchalgorithmus mit gekennzeichnet habe.
AW: Variable in einer Spalte suchen mit VBA
19.01.2004 19:12:00
Knut
Columns("B:B").Select
Selection.Find(What:=temp , After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
Knut
Anzeige
Anzeige

Infobox / Tutorial

Variable in einer Spalte suchen mit VBA


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: Rechtsklick auf "VBAProject (DeineDatei.xlsx)" > Einfügen > Modul.

  3. Kopiere den folgenden Code in das Modul:

    Sub SucheVariableInSpalte()
       Dim temp As Variant
       Dim found As Range
       Dim i As Long
    
       ' Hier wird die Variable temp gesetzt
       temp = Worksheets("temp").Cells(i + 6, found).Value
    
       ' Suche in Spalte B
       Set found = Columns("B:B").Find(What:=temp, LookIn:=xlFormulas, _
                                        LookAt:=xlPart, SearchOrder:=xlByRows, _
                                        SearchDirection:=xlNext, MatchCase:=False)
    
       If Not found Is Nothing Then
           MsgBox "Wert gefunden in Zeile: " & found.Row
       Else
           MsgBox "Wert nicht gefunden."
       End If
    End Sub
  4. Stelle sicher, dass Du den Wert von i und found vorher korrekt zuweist, bevor Du das Makro ausführst.

  5. Schließe den VBA-Editor und gehe zurück zu Excel.

  6. Drücke ALT + F8, wähle SucheVariableInSpalte und klicke auf Ausführen.


Häufige Fehler und Lösungen

  • Fehler: "Method 'Find' of object 'Range' failed."

    • Ursache: Die Spalte, die du suchst, ist möglicherweise leer oder die Variable ist nicht korrekt definiert. Überprüfe, ob temp den erwarteten Wert hat.
  • Fehler: "Variable nicht definiert."

    • Ursache: Du hast möglicherweise vergessen, die Variable found oder temp zu deklarieren. Stelle sicher, dass alle Variablen korrekt deklariert sind.

Alternative Methoden

Statt Find kannst Du auch eine Schleife verwenden, um durch die Zellen in der Spalte zu iterieren:

Sub SucheMitSchleife()
    Dim temp As Variant
    Dim i As Long
    Dim cell As Range

    temp = Worksheets("temp").Cells(i + 6, 1).Value ' Beispiel für die Zelle
    For Each cell In Worksheets("DeinBlattName").Columns("B:B").Cells
        If cell.Value = temp Then
            MsgBox "Wert gefunden in Zeile: " & cell.Row
            Exit For
        End If
    Next cell
End Sub

Praktische Beispiele

Wenn Du zum Beispiel den Wert "toco wert 20" in Spalte B suchen möchtest, stelle sicher, dass temp diesen Wert enthält:

temp = "toco wert 20"

Führe dann das Makro aus, um zu sehen, in welcher Zeile dieser Wert gefunden wird.


Tipps für Profis

  • Nutze Option Explicit am Anfang Deines Moduls, um sicherzustellen, dass alle Variablen deklariert werden. Dies hilft, Fehler zu vermeiden.
  • Experimentiere mit den Parametern des Find-Befehls, um die Suche zu optimieren. Zum Beispiel kannst Du MatchCase auf True setzen, wenn die Groß- und Kleinschreibung relevant ist.
  • Verwende Fehlerbehandlung, um sicherzustellen, dass Dein Makro nicht abstürzt, falls ein Wert nicht gefunden wird.

FAQ: Häufige Fragen

1. Wie kann ich die Suche auf mehrere Spalten erweitern?
Du kannst den Find-Befehl innerhalb einer Schleife für mehrere Spalten nutzen oder die Spalten in einer einzigen Find-Abfrage angeben.

2. Was mache ich, wenn ich mehrere Treffer finden möchte?
Nutze eine Schleife, um alle Zellen zu durchlaufen und speichere die gefundenen Zeilen in einer Liste oder einem Array.

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