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

Forumthread: Wert in Spalte suchen und Zelle aktivieren

Wert in Spalte suchen und Zelle aktivieren
05.08.2016 14:24:25
Michael
Hallo zusammen,
sitze nun schon länger an meinem VBA-Code und finde nicht die richtige Lösung im Netz.
Ich möchte die Spalte H durchsuchen, nach einem Wert, den ich aus einer Zelle auslese. Als Rückinfo soll die Zeilennummer in eine Zelle geschrieben werden oder die entsprechende Zelle in der Spalte aktiviert werden.
Das klappt auch soweit, solange ein Wert vorhanden ist. Wenn der Wert nicht vorhanden ist kommt immer eine Fehlermeldeung.
Wer kann mir helfen?
Vielen Dank
Michael
Sub Codesuche()
Dim Zeile As Long
Dim Eingabe As String
Sheets("PLdat").Select
Range("h7").Select
Eingabe = Worksheets("Kunde").Cells(5, 4).Value
Zeile = Sheets("PLdat").Columns("h:h").Find(What:=Eingabe, After:=ActiveCell, LookIn:= _
xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Row
Range("d7").Value = Zeile
Range("d7").Select
End Sub

Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wert in Spalte suchen und Zelle aktivieren
05.08.2016 14:34:37
Hajo_Zi
definiere Zeile as Range
lösche bei find .row
danach If not Zeile is Nothing then

AW: Wert in Spalte suchen und Zelle aktivieren
05.08.2016 14:44:01
Michael
Hallo Hajo,
vielen Dank für die schnelle Antwort. Leider passt es noch nicht. Habe wie folgt angepasst, aber nun kommt eine Fehlermeldung Objektvariable oder With-Blockvariable nicht festgelegt.
Sub Codesuche()
Dim Zeile As Range
Dim Eingabe As String
Sheets("PLdat").Select
Range("h7").Select
Eingabe = Worksheets("Kunde").Cells(5, 4).Value
Zeile = Columns("h:h").Find(What:=Eingabe, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
If Not Zeile Is Nothing Then
MsgBox ("Nicht vorhanden")
End If
Range("d7").Value = Zeile
Range("d7").Select
End Sub
Viele Grüße Michael
Anzeige
AW: Wert in Spalte suchen und Zelle aktivieren
05.08.2016 14:50:39
Michael
Hallo Hajo,
habe eben bereits geantwortet ohne oben auf den Link zu gehen. Bin neu im Forum. Bitte schau dir doch nochmals meine Antwort an. Danke Michael
AW: Wert in Spalte suchen und Zelle aktivieren
05.08.2016 14:55:20
Hajo_Zi
ich hätte angenommen Du möchtest was in die Zelle schreiben falls gefunden. Du möchtest aber jetzt eine Msgbox mit dem Text "Nicht gefunden" obwohl gefunden.
Und den Fehler möchtest Du nicht Behandelt haben.
Ich kann Dir da Leider nicht weiter helfen, da ich die Aufgabe wohl Falsch verstanden habe.
Ich baue keine Datei nach. Die Zeit hat schon jemand investiert.
Ein Nachbau sieht meist anders aus als das Original.
Der Name einer hochgeladenen Mappe wird im Beitrag automatisch angezeigt, sodass es bei Verwendung von aussagekräftigen Namen leichter fällt, sie später im Ablageordner wiederzufinden und sie gedanklich einem bestimmten Thema zuzuordnen. Namen wie Test, Mappe, Beispiel usw. sind so allgemein, dass eine Zuordnung zu einem Thema unmöglich gemacht wird.
Gruß Hajo
Anzeige
AW: Wert in Spalte suchen und Zelle aktivieren
05.08.2016 15:27:45
Michael
Hallo Hajo,
ich erstelle eine Tabelle zur Planung. Dort werden Plandaten eingetragen. Diese Plandaten werden von einer Tabelle in eine nächste kopiert. Ist in dieser Tabelle bereits der Kunde vorhanden, sollen die Wert genau dort überschrieben werden.
Wenn nicht, soll die erste freie Zelle in der Spalte h gesucht werden und dort der Wert eingetragen werden. Ich wollte mit der Msgbox erstmal sehen ob es klappt und mich dann weiter an dem Code versuchen.
vielen Grüße
Michael
Anzeige
AW: Wert in Spalte suchen und Zelle aktivieren
05.08.2016 16:07:10
Werner
Hallo Michael,
Sub Codesuche()
Dim Zeile As Range
Dim Eingabe As String
Sheets("PLdat").Select
Range("h7").Select
Eingabe = Worksheets("Kunde").Cells(5, 4).Value
Zeile = Columns("h:h").Find(What:=Eingabe, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
If Not Zeile Is Nothing Then
Range("D7").Value = Zeile.Row
Range("D7").Select
Else
MsgBox ("Nicht vorhanden")
End If
End Sub
Gruß Werner
Anzeige
AW: Wert in Spalte suchen und Zelle aktivieren
06.08.2016 10:20:23
Bastian
Hey Werner muss nicht "Set" vor "Zeile =" ?
Da wir die Zeile als "Range" gesetzt haben.
Gruß Basti
AW: Wert in Spalte suchen und Zelle aktivieren
05.08.2016 14:35:43
baschti007
oder so
Sub Codesuche()
Dim Zeile As Long
Dim Eingabe As String
Sheets("PLdat").Select
Range("h7").Select
Eingabe = Worksheets("Kunde").Cells(5, 4).Value
On Error GoTo xx
Zeile = Sheets("PLdat").Columns("h:h").Find(What:=Eingabe, After:=ActiveCell, LookIn:= _
xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Row
Range("d7").Value = Zeile
Range("d7").Select
Exit Sub
xx:
MsgBox "Wert nicht gefunden " & Eingabe
End Sub

Anzeige
;

Forumthreads zu verwandten Themen

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

Wert in Spalte suchen und Zelle aktivieren


Schritt-für-Schritt-Anleitung

Um in Excel mit VBA einen Wert in einer bestimmten Spalte zu suchen und die entsprechende Zelle zu aktivieren, kannst du die folgende Schritt-für-Schritt-Anleitung befolgen:

  1. Öffne den VBA-Editor: Drücke ALT + F11 in Excel.

  2. Einfügen eines neuen Moduls: Klicke im Projektfenster mit der rechten Maustaste auf dein Projekt und wähle Einfügen > Modul.

  3. VBA-Code eingeben: Kopiere den folgenden Code in das Modul:

    Sub Codesuche()
        Dim Zeile As Range
        Dim Eingabe As String
        Sheets("PLdat").Select
        Range("h7").Select
        Eingabe = Worksheets("Kunde").Cells(5, 4).Value
        Set Zeile = Columns("h:h").Find(What:=Eingabe, After:=ActiveCell, LookIn:=xlFormulas, _
            LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
            MatchCase:=False, SearchFormat:=False)
    
        If Not Zeile Is Nothing Then
            Range("D7").Value = Zeile.Row
            Zeile.Select
        Else
            MsgBox "Wert nicht gefunden: " & Eingabe
        End If
    End Sub
  4. Anpassen des Codes: Stelle sicher, dass die Tabellennamen ("PLdat" und "Kunde") korrekt sind und an deine Arbeitsmappe angepasst werden.

  5. Ausführen des Codes: Drücke F5 oder wähle Ausführen > Sub/UserForm ausführen, um den Code auszuführen.


Häufige Fehler und Lösungen

  • Fehlermeldung "Objektvariable oder With-Blockvariable nicht festgelegt": Dies kann auftreten, wenn der gesuchte Wert nicht gefunden wird. Stelle sicher, dass du den Code korrekt angepasst hast und überprüfe, ob der Wert tatsächlich in der Spalte vorhanden ist.

  • MsgBox zeigt "Nicht gefunden" an, obwohl der Wert vorhanden ist: Überprüfe, ob die Variablen richtig deklariert sind. Achte darauf, dass du Set verwendest, wenn du eine Range-Variable zuweist.

  • Zelle wird nicht aktiviert: Stelle sicher, dass du die Select-Methode korrekt verwendest, um die gefundene Zelle auszuwählen.


Alternative Methoden

Wenn du den VBA-Code vermeiden möchtest, kannst du auch die integrierte Excel-Suchfunktion verwenden:

  1. Markiere die Spalte, in der du suchen möchtest.
  2. Drücke STRG + F, um das Suchfenster zu öffnen.
  3. Gib den Wert ein, den du suchen möchtest, und klicke auf Weitersuchen.

Diese Methode ist nützlich, wenn du keine Programmierung verwenden möchtest, aber weniger automatisiert.


Praktische Beispiele

Hier sind einige praktische Szenarien, in denen du den VBA-Code einsetzen kannst:

  • Kundendatenverwaltung: Suche nach einem bestimmten Kunden in einer Liste und aktualisiere dessen Daten in der Zeile.
  • Inventarverwaltung: Durchsuche eine Spalte mit Produktnummern, um sicherzustellen, dass alle Produkte auf Lager sind.
  • Berichtserstellung: Finde spezifische Werte in einer großen Datenmenge und schreibe die Ergebnisse in ein Zusammenfassungsdokument.

Tipps für Profis

  • Nutze On Error Resume Next am Anfang deines Codes, um Fehler abzufangen und zu verhindern, dass dein Makro bei einem nicht gefundenen Wert stoppt.

  • Implementiere Logging, um die Anzahl der Suchvorgänge und deren Ergebnisse aufzuzeichnen, besonders wenn du mit großen Datenmengen arbeitest.

  • Experimentiere mit der Find-Methode, um verschiedene Suchoptionen wie MatchCase und LookAt zu verwenden, um die Genauigkeit deiner Suche zu verbessern.


FAQ: Häufige Fragen

1. Wie kann ich den VBA-Code anpassen, um in einer anderen Spalte zu suchen? Du musst lediglich die Spalte in der Columns("h:h")-Anweisung ändern, z.B. Columns("A:A") für die Spalte A.

2. Was tun, wenn ich mehrere Werte in einer Spalte suchen möchte? Du kannst eine Schleife verwenden, um mehrere Werte nacheinander zu durchsuchen, indem du den Code für jeden Wert einmal ausführst.

3. Ist es möglich, den gefundenen Wert an einer anderen Stelle zu speichern? Ja, du kannst die Zielzelle einfach ändern, indem du den Code anpasst, wo der Wert gespeichert werden soll, z.B. Range("E7").Value = Zeile.Row.

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