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

Forumthread: Suchen und markieren mit Makro

Suchen und markieren mit Makro
12.12.2004 13:15:07
Markus
Hallo,
ich versuche ein Makro zu schreiben, das in Spalte A jedes Arbeitsblattes nach einem Wert sucht und die gefundene Zeile markiert aber ich schaffe es nicht.
Kann mir jemand weiter helfen?
Markus
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Suchen und markieren mit Makro
Boris
Hi Markus,
kann der gesuchte Wert auch öfter in Spalte A eines jeden Blattes vorkommen? Wenn ja: Was ist zu tun?
Grüße Boris
AW: Suchen und markieren mit Makro
Tobias
Hallo Markus,
Hoffe das hilft Dir weiter...

Sub FindAndMark()
Dim wksSheet As Worksheet
Dim objCell As Object
Dim strReferenceArray() As String
Dim strMatchValue As String
Dim strMultiReference As String
Dim lngReferenceCounter As Long
Dim lngCounter As Long
Dim lngStartSheet As Long
strMatchValue = "test"
lngStartSheet = ActiveSheet.Index
Application.ScreenUpdating = False
For Each wksSheet In ActiveWorkbook.Worksheets
Erase strReferenceArray
lngReferenceCounter = 0
strMultiReference = ""
For Each objCell In wksSheet.Range("A:A")
If objCell.Value = strMatchValue Then
ReDim Preserve strReferenceArray(lngReferenceCounter)
strReferenceArray(lngReferenceCounter) = objCell.Address
lngReferenceCounter = lngReferenceCounter + 1
End If
Next objCell
For lngCounter = 0 To lngReferenceCounter - 1
strMultiReference = strMultiReference & "," & strReferenceArray(lngCounter)
Next lngCounter
wksSheet.Select
Range(Right(strMultiReference, Len(strMultiReference) - 1)).Select
Next wksSheet
Sheets(lngStartSheet).Select
Application.ScreenUpdating = True
End Sub

Gruss
Tobias
Anzeige
AW: Suchen und markieren mit Makro
Beni
Hallo Markus,
Gruss Beni

Sub Suchen()
Dim rng As Range
Dim sAddresse, sAdd, sFind As String
sFind = InputBox("Bitte Suchbegriff eingeben:")
Set rng = Columns(1).Find(what:=sFind, lookat:=xlWhole, LookIn:=xlValues)
If Not rng Is Nothing Then
sAddresse = rng.Address(False, False)
sAdd = sAddresse
rng(1, 1).Activate
Do
Set rng = Columns(1).FindNext(after:=ActiveCell)
If Not rng Is Nothing Then
If rng.Address(False, False) = sAddresse Then Exit Do
rng(1, 1).Activate
sAdd = sAdd & "," & rng(1, 1).Address(False, False)
End If
Loop
End If
Range(sAdd).Select
End Sub

Anzeige
AW: Suchen und markieren mit Makro
Markus
Hallo Beni,
funktioniert soweit gut, ich möchte aber, dass das Makro die komplette Zeile makiert.
Markus
AW: Suchen und markieren mit Makro
Beni
Hallo Markus,
Gruss Beni

Sub Suchen()
Dim rng As Range
Dim sRow, sAdd, sFind As String
sFind = InputBox("Bitte Suchbegriff eingeben:")
Set rng = Columns(1).Find(what:=sFind, lookat:=xlWhole, LookIn:=xlValues)
If Not rng Is Nothing Then
sRow = rng.Row
sAdd = sRow & ":" & sRow
rng(1, 1).Activate
Do
Set rng = Columns(1).FindNext(after:=ActiveCell)
If Not rng Is Nothing Then
If rng.Row = sRow Then Exit Do
rng(1, 1).Activate
sAdd = sAdd & "," & rng(1, 1).Row & ":" & rng(1, 1).Row
End If
Loop
End If
Range(sAdd).Select
End Sub

Anzeige
AW: Suchen und markieren mit Makro
Markus
Hallo Beni,
vielen Dank
Markus
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Mit Makros in Excel Zellen mit bestimmten Inhalten suchen und markieren


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und erstelle ein neues Arbeitsblatt oder öffne ein bestehendes.

  2. Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  3. Gehe zu Einfügen > Modul, um ein neues Modul zu erstellen.

  4. Kopiere und füge den folgenden VBA-Code ein:

    Sub FindAndMark()
       Dim wksSheet As Worksheet
       Dim objCell As Object
       Dim strMatchValue As String
       strMatchValue = "test" ' Hier kannst du den gesuchten Wert eingeben
       Application.ScreenUpdating = False
       For Each wksSheet In ActiveWorkbook.Worksheets
           For Each objCell In wksSheet.Range("A:A")
               If objCell.Value = strMatchValue Then
                   objCell.EntireRow.Interior.Color = RGB(255, 255, 0) ' Zeile markieren
               End If
           Next objCell
       Next wksSheet
       Application.ScreenUpdating = True
    End Sub
  5. Ändere den Wert von strMatchValue auf den Inhalt, den du suchen möchtest.

  6. Führe das Makro aus, indem du auf F5 drückst oder das Makro im Excel-Interface startest.


Häufige Fehler und Lösungen

  • Fehler: Keine Zellen markiert.

    • Stelle sicher, dass der gesuchte Wert tatsächlich in Spalte A vorhanden ist. Überprüfe auch die Schreibweise.
  • Fehler: Makro läuft nicht.

    • Überprüfe, ob Makros in Deinen Excel-Einstellungen aktiviert sind. Gehe zu Datei > Optionen > Trust Center > Einstellungen für das Trust Center > Makroeinstellungen.

Alternative Methoden

Eine weitere Möglichkeit, Zellen in Excel zu suchen und hervorzuheben, ist die Verwendung der Bedingten Formatierung:

  1. Markiere die Spalte A.

  2. Gehe zu Start > Bedingte Formatierung > Neue Regel.

  3. Wähle „Formel zur Ermittlung der zu formatierenden Zellen verwenden“.

  4. Gib folgende Formel ein:

    =A1="deinSuchbegriff"
  5. Wähle das gewünschte Format aus und klicke auf „OK“.


Praktische Beispiele

Wenn du nach einem bestimmten Wort in deiner Excel-Tabelle suchst, kannst du das folgende Makro anpassen:

Sub Suchen()
    Dim rng As Range
    Dim sAddresse, sAdd, sFind As String
    sFind = InputBox("Bitte Suchbegriff eingeben:")
    Set rng = Columns(1).Find(what:=sFind, lookat:=xlWhole, LookIn:=xlValues)
    If Not rng Is Nothing Then
        sAddresse = rng.Address(False, False)
        sAdd = sAddresse
        rng.EntireRow.Select ' Markiert die gesamte Zeile
        Do
            Set rng = Columns(1).FindNext(after:=ActiveCell)
            If Not rng Is Nothing Then
                If rng.Address(False, False) = sAddresse Then Exit Do
                rng.EntireRow.Select
                sAdd = sAdd & "," & rng.Address(False, False)
            End If
        Loop
    End If
End Sub

Tipps für Profis

  • Verwende Find und FindNext: Diese Methoden sind effizient, um mehrere Vorkommen eines Wertes zu suchen.
  • Optimiere die Suche: Du kannst die Suche auf bestimmte Arbeitsblätter beschränken, um die Leistung zu verbessern.
  • Verwende .EntireRow.Interior.Color: Damit kannst du die gesamte Zeile hervorheben, nicht nur die Zelle.

FAQ: Häufige Fragen

1. Wie kann ich das Makro anpassen, um nach mehreren Werten zu suchen?
Du kannst eine Schleife verwenden, um durch eine Liste von Suchbegriffen zu iterieren und das Makro entsprechend anzupassen.

2. Funktioniert das Makro in allen Excel-Versionen?
Ja, das Makro sollte in den meisten modernen Excel-Versionen (Excel 2010 und neuer) funktionieren. Achte darauf, dass Makros aktiviert sind.

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