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

Forumthread: Makro: Suche nach Wert, dann markiere Zeile farbig

Makro: Suche nach Wert, dann markiere Zeile farbig
04.02.2008 09:53:00
Michael
Hallo zusammen,
ich habe hier zwei Tabellen, eine mit vielen Spalten, unter anderem eine Spalte "Nummer". Nun habe ich eine weitere Tabelle mit nur einer Spalte namens "erledigte Nummer".
Ich suche ein Makro, dass alle erledigten Nummern in der Haupttabelle sucht, und dann die gesamte Zeile farbig markiert in der diese Nummer steht.
Achtung: die Nummer kann auch mehrmals in der Haupttabelle vorkommen, dann sollen alle vorkommnisse farbig markiert werden.
Ich wäre euch sehr verbunden wenn ihr hierzu schon mal eine Lösung gesehen habt!
Viele Grüße
Michael

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Makro: Suche nach Wert, dann markiere Zeile farbig
04.02.2008 10:26:55
Chris
Servus,
das geht so:

Private Sub CommandButton1_Click()
Dim rFinde As Range, rSuche As Range
Dim strFirst As String
Dim lngReihe As Long, lngLetzte As Long
Dim I As Integer
With Sheets("Tabelle2")
lngLetzte = IIf(IsEmpty(.Cells(Rows.Count, 1)), .Cells(Rows.Count, 1).End(xlUp).Row, Rows. _
Count)
End With
Set rFinde = Sheets("Tabelle1").Range("A:A")
With Sheets("Tabelle2")
For I = 2 To lngLetzte
Set rSuche = rFinde.Find(what:=.Cells(I, 1), LookAt:=xlWhole)
If Not rSuche Is Nothing Then
strFirst = rSuche.Address
Do
lngReihe = rSuche.Row
Sheets("Tabelle1").Range("A" & lngReihe).EntireRow.Interior.ColorIndex = 3
Set rSuche = rFinde.FindNext(rSuche)
Loop While Not rSuche Is Nothing And rSuche.Address  strFirst
End If
Next I
End With
End Sub


https://www.herber.de/bbs/user/49623.xls
in der Bsp.Datei in tabelle2 auf Button drücken., dann in Tabelle1 nachschauen.
Die Tabellennamen und die Suchranges musst du eventuell anpassen. ich weiß ja nicht, wo deine Daten stehen.
Gruß
Chris

Anzeige
AW: Makro: Suche nach Wert, dann markiere Zeile farbig
04.02.2008 14:14:00
Chris
Servus lufrio1,
dann erklär ich's dir:

Private Sub CommandButton1_Click()
Dim rFinde As Range, rSuche As Range ' das ist mal eine einfache Variablendeklaration
Dim strFirst As String
Dim lngReihe As Long, lngLetzte As Long
Dim I As Integer
With Sheets("Tabelle2")
lngLetzte = IIf(IsEmpty(.Cells(Rows.Count, 1)), .Cells(Rows.Count, 1).End(xlUp).Row, Rows.  _
_
Count) ' letzte volle Zeile in Sheet2 ermitteln, da stehen die Suchstrings in den Zeilen von  _
Spalte A
End With
Set rFinde = Sheets("Tabelle1").Range("A:A") ' wo soll gesucht werden, naja, in Spalte A Sheet1, _
da stehen die zu vergleichenden Werte
With Sheets("Tabelle2")
For I = 2 To lngLetzte ' Suchschleife, da ja mehr als nur ein Suchwert
Set rSuche = rFinde.Find(what:=.Cells(I, 1), LookAt:=xlWhole) ' .cells.. ist der jeweilige  _
Suchwert
If Not rSuche Is Nothing Then ' wenn, was gefunden wurde
strFirst = rSuche.Address ' merke dir die erste gefundene Zelle (weil können ja mehr  _
sein)
Do ' weiter Schleife, um die anderen gleichen zu finden
lngReihe = rSuche.Row ' wir merken uns die Zeile wo in Sheet1 der Suchstring steht
Sheets("Tabelle1").Range("A" & lngReihe).EntireRow.Interior.ColorIndex = 3 ' wir fä _
rben diese Zeile komplett rot ein
Set rSuche = rFinde.FindNext(rSuche) ' wir suchen den nächsten, gleichen  _
Suchstring
Loop While Not rSuche Is Nothing And rSuche.Address  strFirst 'das tun wir solange, _
bis wir wieder bei der ersten Adresse sind und somit alle gefunden wurden.
End If
Next I
End With
End Sub


Das war's auch schon.
Gruß
Chris

Anzeige
AW: Makro: Suche nach Wert, dann markiere Zeile farbig
04.02.2008 15:08:55
lufrio1
Hi Chris,
na, das ist doch mal eine echte Erklärung, der Dinge, die hier immer so geschrieben werden.
nicht, dass ich es jetzt selbstständig anwenden kann, aber um Dinge in meine Makros vom Recorder augezeichneten Schlauheiten mit einzubauen, dafür habe ich bisher hier immer tolle Hilfe erhalten.
Ich hätte es gedanklich übrigens viel einfacher gestaltet. Ich würde den zu selektierenden Wert filtern und dann die Zeilen, die gefiltert sind markieren. Kann man auch gut per Makro machen.
Viele Grüße
Lufrio

Anzeige
AW: ist auch ne Möglichkeit! o.w.T.
04.02.2008 17:16:00
Chris
.

AW: Makro: Suche nach Wert, dann markiere Zeile farbig
04.02.2008 13:21:00
lufrio1
Hallo Michael,
hast du die Antwort verstanden?
Ich finde es auch interessant, leider hapert es bei mir mit der logischen Umsetzung, da das Makro für mein Nicht-VBA-Verständnis zu hoch ist.
;

Forumthreads zu verwandten Themen

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

Zeilen farbig markieren basierend auf Suchwerten in Excel


Schritt-für-Schritt-Anleitung

Um eine Zeile in Excel basierend auf einem Suchwert farbig zu markieren, kannst du ein VBA-Makro verwenden. Hier ist eine einfache Anleitung, wie du das umsetzen kannst:

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

  2. Füge ein neues Modul hinzu: Klicke auf Einfügen > Modul.

  3. Kopiere und füge den folgenden Code ein:

    Private Sub CommandButton1_Click()
       Dim rFinde As Range, rSuche As Range
       Dim strFirst As String
       Dim lngReihe As Long, lngLetzte As Long
       Dim I As Integer
    
       With Sheets("Tabelle2")
           lngLetzte = IIf(IsEmpty(.Cells(Rows.Count, 1)), .Cells(Rows.Count, 1).End(xlUp).Row, Rows.Count)
       End With
    
       Set rFinde = Sheets("Tabelle1").Range("A:A")
    
       With Sheets("Tabelle2")
           For I = 2 To lngLetzte
               Set rSuche = rFinde.Find(what:=.Cells(I, 1), LookAt:=xlWhole)
               If Not rSuche Is Nothing Then
                   strFirst = rSuche.Address
                   Do
                       lngReihe = rSuche.Row
                       Sheets("Tabelle1").Range("A" & lngReihe).EntireRow.Interior.ColorIndex = 3
                       Set rSuche = rFinde.FindNext(rSuche)
                   Loop While Not rSuche Is Nothing And rSuche.Address <> strFirst
               End If
           Next I
       End With
    End Sub
  4. Schließe den VBA-Editor und kehre zurück zu Excel.

  5. Erstelle einen Button über Entwicklertools > Einfügen > Schaltfläche (Formularsteuerelement).

  6. Weise das Makro zu: Klicke mit der rechten Maustaste auf den Button > Makro zuweisen und wähle das Makro aus.

Jetzt kannst du den Button klicken, um die gesuchten Zellen farblich zu markieren!


Häufige Fehler und Lösungen

  • Fehler: Das Makro funktioniert nicht.
    Lösung: Stelle sicher, dass die Tabellennamen korrekt sind. Du musst möglicherweise "Tabelle1" und "Tabelle2" anpassen, je nachdem, wie deine Blätter heißen.

  • Fehler: Die Zeilen werden nicht farbig markiert.
    Lösung: Überprüfe, ob die gesuchten Werte tatsächlich in der Spalte vorhanden sind und dass die Suchparameter im Code korrekt eingestellt sind.


Alternative Methoden

Eine alternative Methode, um Werte in Excel farbig hervorzuheben, ist die Verwendung von bedingter Formatierung:

  1. Markiere die Spalte oder den Zellbereich, den du überwachen möchtest.
  2. Gehe zu Start > Bedingte Formatierung > Neue Regel.
  3. Wähle Formel zur Ermittlung der zu formatierenden Zellen verwenden.
  4. Gib eine Formel ein, die deinen Suchwert enthält, z. B.:
    =A1="Suchwert"
  5. Lege das Format fest, z. B. die Hintergrundfarbe.

Diese Methode ermöglicht es dir, die Werte dynamisch hervorzuheben, ohne ein Makro verwenden zu müssen.


Praktische Beispiele

Angenommen, du hast in Tabelle1 eine Liste von Bestellnummern und in Tabelle2 die erledigten Bestellungen. Das oben beschriebene Makro wird alle Zeilen in Tabelle1, die mit den erledigten Bestellungen übereinstimmen, farbig markieren.

' Beispiel für das Makro
Sheets("Tabelle1").Range("A1:A100").Interior.ColorIndex = 3 ' Hier wird die gesamte Spalte A farbig markiert

Du kannst die ColorIndex-Zahl ändern, um verschiedene Farben zu verwenden.


Tipps für Profis

  • Optimierung: Wenn du viele Daten hast, kann das Makro langsam werden. Überlege, ob du den Suchbereich einschränken kannst.
  • Fehlerbehandlung: Füge On Error Resume Next am Anfang des Codes hinzu, um Fehler zu ignorieren und so die Ausführung nicht zu unterbrechen.
  • Debugging: Verwende Debug.Print im Code, um die Werte zu überprüfen und potenzielle Fehlerquellen zu identifizieren.

FAQ: Häufige Fragen

1. Wie kann ich die gesuchte Zelle farblich markieren?
Du kannst die Zeile, in der der gesuchte Wert gefunden wird, mit dem Makro farbig markieren, indem du den Interior.ColorIndex änderst.

2. Kann ich mehrere Suchwerte gleichzeitig verwenden?
Ja, du kannst das Makro anpassen, um eine Liste von Suchwerten zu überprüfen, indem du eine Schleife hinzufügst, die über die Liste iteriert.

3. Funktioniert das auch in Excel Online?
Leider funktioniert VBA nur in der Desktop-Version von Excel. Excel Online unterstützt keine Makros.

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