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

Forumthread: suchen und Zelle markieren

suchen und Zelle markieren
28.05.2020 11:05:50
Maik
Guten Tag.
ich habe hier aus dem Forum ein Makro gefunden was mir schon sehr hilft.
Ich suche also in Spalte B einen Wert und in spalte A wird dann die Zelle rot markiert.
Funktioniert auch soweit super. Nun habe ich aber mehrere gleiche Einträge und ich möchte das alle Zellen von A makiert werden in den der Wert aus B gefunden wurde. Also wie eine schleife. Suche markiere bis nichts mehr gefunden wird.
Wenn das geht würde ich gerne das bei jeder Suchanfrage die Zellen A6-A1000 wieder weiß gemacht werden.
Naja und wenn es geht sollte die Markierung in einem mittel hellen lila sein.
Sub Finden()
Dim strSUCH As Variant
Dim rngSUCH As Range
Dim lngFind As Long
strSUCH = Application.InputBox("Bitte Eingabe tätigen:")
Set rngSUCH = ActiveSheet.Range("B3:B1000").Find(What:=strSUCH, _
Lookat:=xlWhole, LookIn:=xlValues, MatchCase:=True)
If Not rngSUCH Is Nothing Then
lngFind = rngSUCH.Row
Cells(lngFind, 1).Interior.ColorIndex = 3
Cells(lngFind, 1).Select
Else
MsgBox "Der gesuchte Wert " & strSUCH & " wurde nicht gefunden.", _
64, "Nicht gefunden."
End If
Set rngSUCH = Nothing
End Sub

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: suchen und Zelle markieren
28.05.2020 12:39:55
Piet
Hallo
ich habe das Makro etwas überarbeitet, so sollte es klappen. Die ganzde Spalte weiss setzen geht über Range oder Columns(1) für Spalte A. Weitersuchen geht über Do Loop Schleife. Dazu muss man sich die 1. gefundene Zelle merken, sonst ist Do Loop eine Endlosschleife (Todesschleife!!)
Die Farbe für Lila bitte per Makrorecorder ermitteln und den Coloridex 3 gegen Lila wechseln. Bitte mal Farcode 54 oder 39 probieren er die Farbe dir zusagt.
Piet
Sub Finden()
Dim strSUCH As Variant
Dim rngSUCH As Range
Dim lngFind As Long
Dim strAdr1 As String  '1. Find Adresse
Dim lngLRow As Long    'LastRow Variable
Dim n As Integer       'gefundene Zellen
'LastRow in Spalte B suchen (von unten)
lngLRow = Cells(Rows.Count, 2).End(xlUp).Row
Columns(2).Interior.ColorIndex = xlNone  'oder Range!!
'Range("B3:B" & lngLRow).Interior.ColorIndex = xlNone
strSUCH = Application.InputBox("Bitte Eingabe tätigen:")
Set rngSUCH = Range("B3:B" & lngLRow).Find(What:=strSUCH, _
Lookat:=xlWhole, LookIn:=xlValues, MatchCase:=True)
If Not rngSUCH Is Nothing Then
strAdr1 = rngSUCH.Address
Do
rngSUCH.Offset(0, -1).Interior.ColorIndex = 3
Set rngSUCH = Range("B3:B" & lngLRow).FindNext(rngSUCH)
Loop Until strAdr1 = rngSUCH.Address
Else
MsgBox "Der gesuchte Wert " & strSUCH & " wurde nicht gefunden.", _
64, "Nicht gefunden."
End If
Set rngSUCH = Nothing
End Sub

Anzeige
AW: suchen und Zelle markieren
28.05.2020 13:10:47
Maik
Vielen Dank schon mal.
Noch stimmt es bei mir nicht so ganz.
Leider wird nicht spalte A sondern Spalte B weiß gemacht.
Dann soll es auch nicht die ganze spalte sein. Sondern nur A6-A1000 nicht aber A2 usw.
Dann sprang das erste makro noch zu dem ersten Eintrag welches markiert wurde. Geht das hier auch wieder?
Die Markierung und Farbe passt super.
Anzeige
AW: suchen und Zelle markieren
28.05.2020 13:55:30
Maik
Sorry das mit der Range habe ich übersehen und angepasst.
Jetzt werden auch die richtigen Zellen weiß gemacht.
Wichtig wäre nur noch das er zum letzten Eintrag springt der markiert wurde.
Wie ich sehe sucht er von unten nach oben. Dann wäre der letzte Eintrag ja der erste oder ?
AW: suchen und Zelle markieren
28.05.2020 14:28:36
Maik
Hab es hinbekommen.
Funktioniert jetzt wie gewünscht.
Manchmal ist selber denken auch ganz gut.
Vielen Dank!!
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zellen in Excel suchen und farbig markieren


Schritt-für-Schritt-Anleitung

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

  2. Neues Modul einfügen: Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.

  3. Code eingeben: Kopiere und füge den folgenden Code in das Modul ein:

    Sub Finden()
       Dim strSUCH As Variant
       Dim rngSUCH As Range
       Dim strAdr1 As String  '1. Find Adresse
       Dim lngLRow As Long    'LastRow Variable
    
       'LastRow in Spalte B suchen (von unten)
       lngLRow = Cells(Rows.Count, 2).End(xlUp).Row
       Range("A6:A1000").Interior.ColorIndex = xlNone  ' Setzt Zellen A6:A1000 auf weiß
    
       strSUCH = Application.InputBox("Bitte Eingabe tätigen:")
       Set rngSUCH = Range("B3:B" & lngLRow).Find(What:=strSUCH, _
           Lookat:=xlWhole, LookIn:=xlValues, MatchCase:=True)
    
       If Not rngSUCH Is Nothing Then
           strAdr1 = rngSUCH.Address
           Do
               rngSUCH.Offset(0, -1).Interior.ColorIndex = 39  ' Zelle in Spalte A farbig markieren
               Set rngSUCH = Range("B3:B" & lngLRow).FindNext(rngSUCH)
           Loop Until strAdr1 = rngSUCH.Address
           rngSUCH.Offset(0, -1).Select  ' Zum letzten gefundenen Eintrag springen
       Else
           MsgBox "Der gesuchte Wert " & strSUCH & " wurde nicht gefunden.", _
           64, "Nicht gefunden."
       End If
       Set rngSUCH = Nothing
    End Sub
  4. Makro ausführen: Schließe den VBA-Editor und gehe zurück zu Excel. Drücke ALT + F8, wähle Finden und klicke auf Ausführen.

  5. Wert eingeben: Gib den Wert ein, den Du in Spalte B suchen möchtest. Die entsprechenden Zellen in Spalte A werden farbig markiert.


Häufige Fehler und Lösungen

  • Problem: Die Zellen in Spalte A werden nicht weiß gemacht.

    • Lösung: Stelle sicher, dass der Code Range("A6:A1000").Interior.ColorIndex = xlNone vor der Suche ausgeführt wird.
  • Problem: Der Code springt nicht zum letzten Eintrag.

    • Lösung: Überprüfe, ob die Zeile rngSUCH.Offset(0, -1).Select am Ende des Loops korrekt platziert ist.

Alternative Methoden

  • Verwendung der bedingten Formatierung: Du kannst auch die bedingte Formatierung nutzen, um Zellen basierend auf Suchkriterien farbig zu markieren. Gehe zu Start > Bedingte Formatierung > Neue Regel, um eine Regel zu erstellen, die die Zellen in Spalte A hervorhebt, wenn ein bestimmter Wert in Spalte B gefunden wird.

  • Excel-Formeln: Eine Kombination aus WENN und ZÄHLENWENN kann ebenfalls verwendet werden, um Zellen zu identifizieren und zu markieren, jedoch ist die Visualisierung nicht so flexibel wie mit VBA.


Praktische Beispiele

  • Markierung mehrerer Werte: Um mehrere Werte in Spalte B zu suchen und die Zellen in Spalte A zu markieren, kannst Du die Schleife im VBA-Code so anpassen, dass sie eine Liste von Werten durchläuft.

  • Farbänderungen: Du kannst die ColorIndex-Werte im VBA-Code ändern, um unterschiedliche Farben für die Markierung zu verwenden. Nutze den Makrorecorder, um die genauen Farbwerte zu finden.


Tipps für Profis

  • Erweiterung des Makros: Du kannst das Makro so erweitern, dass es auch in weiteren Spalten sucht oder mehrere Farben verwendet, um verschiedene Suchergebnisse darzustellen.

  • Optimierung der Suchgeschwindigkeit: Wenn Du mit großen Datenmengen arbeitest, könnte es sinnvoll sein, die Find-Methode anzupassen, um die Sucheffizienz zu erhöhen.


FAQ: Häufige Fragen

1. Wie kann ich die Farbe der Markierung ändern? Du kannst den ColorIndex im VBA-Code anpassen. Zum Beispiel, um lila zu verwenden, ändere ColorIndex = 39.

2. Funktioniert das Makro in allen Excel-Versionen? Ja, das Makro sollte in den meisten modernen Excel-Versionen funktionieren, die VBA unterstützen. Achte darauf, dass die Sicherheitsoptionen für Makros aktiviert sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige