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

Suchen / Markieren / Weitersuchen

Forumthread: Suchen / Markieren / Weitersuchen

Suchen / Markieren / Weitersuchen
16.07.2002 12:50:07
Patrizia
Hallo !!!

Ich hoffe das mir jemand bei meinem Problem helfen kann.

Ich möchte in einer Spalte nach einem Wert suchen. Ich habe eine UserForm angelegt auf dieser Buttons mit der entsprechenden Suchfunktion belegt (z.B. Button 1 = Suche in Spalte A). Bei Druck auf einen Button öffnet sich dann eine InputBox in der ich meinen Suchwert eintragen kann und nach Druck auf den OK-Button wird die Spalte durchsucht und wenn der Wert gefunden wird die ganze Zeile (die diesen Wert enthält) markiert.

Soweit funktioniert alles wunderbar. Ich habe nun folgendes Problem und hoffe das mir jemand helfen kann:

In der Regel kommen die Werte mehrfach in einer Spalte vor. Bei meinem Code wird aber immer nur eine Zeile markiert auch wenn mehrere mit dem gleichen Wert vorhanden sind. D.h. mein Code müßte um die Funktion erweitert werden das er nicht nur die erste gefunde Zeile markiert sondern alle Zeilen mit dem entsprechenden Wert markiert werden.

Für eure Hilfe bedanke ich mich bereits im voraus.

Hier nun mein bisheriger Code:

Sub SucheSpalteH()
Dim rngFind As Range
Dim strBegriff As String
strBegriff = InputBox("Suchbegriff:")
If strBegriff = "" Then Exit Sub
Set rngFind = Columns(8).Find(strBegriff, LookAt:=xlWhole, LookIn:=xlFormulas)
If rngFind Is Nothing Then
Beep
MsgBox "Suchbegriff wurde nicht gefunden!"
Exit Sub
End If
Rows(rngFind.Row).Select
End Sub

Anzeige

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

Betreff
Datum
Anwender
Anzeige
Re: Suchen / Markieren / Weitersuchen
16.07.2002 13:15:09
@lex
Hallo Patrizia !
Ich würde ich der Spalte die letzte beschriebene Zeile ermitteln,
und dann ein For-To-Schleife durchlaufen lassen.
z.B.:
iCol = 8
iRow = Cells(Rows.Count,iCol).End(xlup).Row
For iCount = 1 to iRow
If Cells(iRow, iCol).Value = strBegriff then rows(iCount).....
Next iCount

Anzeige
Re: Suchen / Markieren / Weitersuchen
16.07.2002 13:20:24
Patrizia
Und wo soll ich das in meiner Formel eintragen ????
Re: Suchen / Markieren / Weitersuchen
16.07.2002 13:46:48
@lex
Sorry hatte ich überlesen :-)
Versuchs mal mit diesem Fragment :
Sub Suchen()

VG,
Alex

Re: Suchen / Markieren / Weitersuchen
16.07.2002 14:15:31
Patrizia
Hallo,

dein Codefragment ist super !!!
Zeigt die Zeilen (in einer MsgBox) an in welchen sich der Suchbefehl befindet. Wenn jetzt noch eine Möglichkeit bestehen würde die Zeilen zu markieren dann wäre es perfekt !!!!

Anzeige
Re: Suchen / Markieren / Weitersuchen
16.07.2002 14:23:59
@lex
Füge unter MsgBox z.b.
Cells(iCount,iCol).Interior.ColorIndex = 4 ein
Die Zeile wird dann eingefärbt.
Mit der Farbe musst Du etwas rumspielen. 4 ist z.B. grün

VG,
@lex

PS: Freut mich, dass Du mit dem Code was anfangen kannst.
So etwas motiviert einen Anfänger wie mich ungemein

Anzeige
Re: Suchen / Markieren / Weitersuchen
16.07.2002 15:48:06
Patrizia
Hallo !!!

Das mit dem Einfärben funktioniert auch spitze. Jetzt habe ich fast das was ich wollte im Prinzip schon genau das was ich wollte es gibt nur ein Problem wenn ich bei der Inputbox nichts
eingebe sondern einfach auf abbrechen gehen färbt er mir die ganze Spalte in der entsprechenden Farbe ein (alle leeren Felder in dieser Spalte).
Hast vielleicht noch ne Idee.
Wäre ganz super.
Danke schon mal für deine super Hilfe.

Anzeige
Re: Suchen / Markieren / Weitersuchen
16.07.2002 18:54:33
WernerB.
Hallo Patrizia,

das nachstehende Makro sollte auch ohne Anpassungen alle Deine Wünsche erfüllen:

Viel Erfolg wünscht
WernerB.

Re: Suchen / Markieren / Weitersuchen
17.07.2002 11:04:00
@lex
:-)
Hätte ich ja auch testen können.

Versuch mal unter
strBegriff = InputBox("Suchbegriff:")
diese einzufügen:
If strBegriff = "" Then Exit Sub
Dann sollte es nicht mehr passieren

VG,
Alex

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

Infobox / Tutorial

Suchen und Markieren in Excel mit VBA


Schritt-für-Schritt-Anleitung

Um in Excel mit VBA eine Zelle mit bestimmtem Inhalt zu suchen und diese zu markieren, kannst du folgende Schritte befolgen:

  1. UserForm erstellen: Erstelle eine UserForm mit einem Button für die Suche.

  2. Code für die Suche einfügen: Füge den folgenden Code in das VBA-Modul deiner UserForm ein:

    Sub SucheSpalteH()
       Dim rngFind As Range
       Dim strBegriff As String
       strBegriff = InputBox("Suchbegriff:")
       If strBegriff = "" Then Exit Sub
    
       Set rngFind = Columns(8).Find(strBegriff, LookAt:=xlWhole, LookIn:=xlFormulas)
       If rngFind Is Nothing Then
           Beep
           MsgBox "Suchbegriff wurde nicht gefunden!"
           Exit Sub
       End If
    
       ' Markiere alle Zeilen mit dem Suchbegriff
       Dim iRow As Long
       iRow = Cells(Rows.Count, 8).End(xlUp).Row
       For iCount = 1 To iRow
           If Cells(iCount, 8).Value = strBegriff Then
               Rows(iCount).Interior.ColorIndex = 4 ' Färbe die Zeile grün
           End If
       Next iCount
    End Sub
  3. Suchfunktion testen: Starte die UserForm und gib deinen Suchbegriff ein. Alle Zeilen, die diesen Wert enthalten, werden nun grün markiert.


Häufige Fehler und Lösungen

  • Problem: Es wird nur eine Zeile markiert.

    • Lösung: Stelle sicher, dass du den For-Loop richtig implementiert hast, um alle Zeilen zu durchlaufen.
  • Problem: Bei Abbrechen der InputBox wird die gesamte Spalte markiert.

    • Lösung: Füge die folgende Zeile ein, um das Programm zu beenden, wenn kein Suchbegriff eingegeben wird:
      If strBegriff = "" Then Exit Sub

Alternative Methoden

Falls du keine UserForm nutzen möchtest, kannst du auch eine einfache Schaltfläche in deinem Excel-Arbeitsblatt erstellen und den gleichen Code in das Modul des Arbeitsblatts einfügen. So kannst du schnell und unkompliziert die Excel Zellen suchen und markieren, ohne eine UserForm zu verwenden.


Praktische Beispiele

  1. Suche eines spezifischen Wertes: Wenn du nach "Apfel" in Spalte A suchst, wird jede Zeile, die "Apfel" enthält, grün markiert.

  2. Mehrere Werte suchen und markieren: Du kannst den Code erweitern, um mehrere Suchbegriffe in einer Liste zu überprüfen und die entsprechenden Zeilen zu markieren.

    Beispiel:

    Dim Suchbegriffe As Variant
    Suchbegriffe = Array("Apfel", "Banane", "Kirsche")

Tipps für Profis

  • Suchen mit Einkreisen: Anstatt die Zeilen einzufärben, kannst du auch die Zellen einkreisen. Verwende dazu:

    Cells(iCount, 8).Borders.LineStyle = xlContinuous
  • Leistungsoptimierung: Um die Leistung zu verbessern, kannst du die Bildschirmaktualisierung während der Suche deaktivieren:

    Application.ScreenUpdating = False
    ' ... dein Code ...
    Application.ScreenUpdating = True

FAQ: Häufige Fragen

1. Wie kann ich die Farbe der Markierung ändern?
Du kannst die Zahl nach ColorIndex ändern, um verschiedene Farben zu verwenden. Zum Beispiel ist 3 für Rot und 5 für Blau.

2. Kann ich die Suche auf mehrere Spalten erweitern?
Ja, passe einfach die Columns-Referenz im Code an, um die gewünschten Spalten einzubeziehen.

3. Was passiert, wenn der Suchbegriff nicht vorhanden ist?
In diesem Fall gibt das Makro eine Meldung aus, dass der Suchbegriff nicht gefunden wurde.

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