Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1928to1932
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Suchbegriffe Zellbereich einfärben

Suchbegriffe Zellbereich einfärben
29.04.2023 14:43:04
Bernd

Hallo,

ich habe ein funktionierendes Makro gefunden, dass ich aber in der Funktion gerne etwas anders hätte. Statt der ganzen Zeile soll bei der Zeile nur der Bereich/die Spalten A bis H markiert werden und jeder Suchbegriff der vier Suchwörter sollte eine andere Hintergrundfarbe bekommen (und nicht alle nur eine Farbe), nämlich die Farbcodes 34, 35, 36 und 40. Über eine Lösung würde ich mich freuen.

Mit freundlichen Grüßen
Bernd
=====================================
Hier der VBA-Code:

Sub Suchbegriffe()
'
Dim wks As Worksheet
Dim rngFind As Range, rngRows As Range
Dim lngRow As Long
Dim strFind As String, strSearch As String

'1. Suchbegriff
strSearch = "Axxx"
Set rngFind = Cells.Find(strSearch)
If rngRows Is Nothing Then
Set rngRows = rngFind
End If
If Not rngFind Is Nothing Then
strFind = rngFind.Address
Do
Set rngRows = Application.Union(rngRows, rngFind.EntireRow)
Set rngFind = Cells.FindNext(After:=rngFind)
If rngFind.Address = strFind Then Exit Do
Loop
End If
rngRows.Select

'2. Suchbegriff
strSearch = "Bxxx"
Set rngFind = Cells.Find(strSearch)
If rngRows Is Nothing Then
Set rngRows = rngFind
End If
If Not rngFind Is Nothing Then
strFind = rngFind.Address
Do
Set rngRows = Application.Union(rngRows, rngFind.EntireRow)
Set rngFind = Cells.FindNext(After:=rngFind)
If rngFind.Address = strFind Then Exit Do
Loop
End If
rngRows.Select

'3. Suchbegriff
strSearch = "Cxxx"
Set rngFind = Cells.Find(strSearch)
If rngRows Is Nothing Then
Set rngRows = rngFind
End If
If Not rngFind Is Nothing Then
strFind = rngFind.Address
Do
Set rngRows = Application.Union(rngRows, rngFind.EntireRow)
Set rngFind = Cells.FindNext(After:=rngFind)
If rngFind.Address = strFind Then Exit Do
Loop
End If
rngRows.Select

'4. Suchbegriff
strSearch = "Dxxx"
Set rngFind = Cells.Find(strSearch)
If rngRows Is Nothing Then
Set rngRows = rngFind
End If
If Not rngFind Is Nothing Then
strFind = rngFind.Address
Do
Set rngRows = Application.Union(rngRows, rngFind.EntireRow)
Set rngFind = Cells.FindNext(After:=rngFind)
If rngFind.Address = strFind Then Exit Do
Loop
End If
rngRows.Select

Selection.Interior.ColorIndex = 15
Range("A1").Select

End Sub

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Suchbegriffe Zellbereich einfärben
29.04.2023 16:18:38
GerdL
Hallo Bernd

Sub Start()
    
    Call Such("Axxx", vbGreen)
    Call Such("Bxxx", vbYellow)
    Call Such("Cxxx", vbRed)
    Call Such("Dxxx", vbCyan)
    Range("A1").Select

End Sub


Sub Such(strsearch As String, lngColor As Long)

    Dim rngFind As Range, Rng As Range
    Dim strFind As String
    
    
    Set rngFind = Cells.Find(strsearch)
    
    If Not rngFind Is Nothing Then
        strFind = rngFind.Address
        Set Rng = Cells(rngFind.Row, 1).Resize(1, 8)
        Do
            Set Rng = Application.Union(Rng, Cells(rngFind.Row, 1).Resize(1, 8))
            Set rngFind = Cells.FindNext(After:=rngFind)
            If rngFind.Address = strFind Then Exit Do
        Loop
        Rng.Interior.Color = lngColor
    End If
    
    Set Rng = Nothing: Set rngFind = Nothing


End Sub
Die Find-Methode hat übrigens ein paar Argument, die die Art der Suche definieren können.
So gelten die Einstellungen im Dialog Suchen.

Gruß Gerd


Anzeige
AW: Funktioniert
29.04.2023 17:55:47
Bernd
Hallo Gerd,

vielen Dank für das neue Makro. Der Code bringt das gewünschte Ergebnis. Toll! Danke!

Mit freundlichen Grüßen und guten Wünschen für einen schönen 1. Mai

Bernd

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige