Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema InputBox
BildScreenshot zu InputBox InputBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen

Excel Zeile suchen und markieren

Betrifft: Excel Zeile suchen und markieren von: Matthias Krug
Geschrieben am: 13.08.2014 15:38:31

Hallo, ich habe eben schonmal einen Beitrag verfasst und es wurde mir auch super geholfen, allerdings hat sich noch ein neues Problem bei meiner liste herausgestellt.
Ich verwende einen CommandButton zum suchen von bestimmten begriffen. Wenn es eine übereinstimmung gab sollen die jeweiligen zeilen gelb markiert werden. nun zu dem Problem: wenn ich was gesucht habe und eine zeile gelb markiert ist, und ich will eine erneute suche ausführen bleibt die alte zeile gelb, ich will sie aber wieder in Ursprungszustand versetzen. Hier ist mein Code:

Private Sub CommandButton2_Click()
Dim suchName As String
    Dim zeLLe As Range
    Dim markRange As Range
    
    ' Bei Diagrammblättern gleich raus
    If Not TypeOf ActiveSheet Is Worksheet Then Exit Sub
    
    suchName = InputBox("Name eingeben:", "Suchfeld")
    If suchName = "" Then Exit Sub
    
    Application.ScreenUpdating = True
    
    With ActiveSheet
        ' Alte Markierung löschen
        .Range(.Cells(2, 1), .Cells(.Rows.Count, 14).End(xlUp)).Interior.ColorIndex = xlNone
For Each zeLLe In .Range(.Cells(2, 1), .Cells(.Rows.Count, 1).End(xlUp)).Resize(, 14)
            If InStr(LCase(zeLLe), LCase(suchName)) <> 0 Then
                If markRange Is Nothing Then
                    Set markRange = .Cells(zeLLe.Row, 1).Resize(, 14)
                Else
                    Set markRange = Union(markRange, .Cells(zeLLe.Row, 1).Resize(, 14))
                End If
            End If
        Next

If Not markRange Is Nothing Then
             With markRange.Interior
               .ColorIndex = 6
               .Pattern = xlSolid
             End With
             Application.Goto markRange(1), True
           Else
             MsgBox "nix gefunden", , "gebe bekannt ..."
           End If
    End With
    Application.ScreenUpdating = True
End Sub

  

Betrifft: AW: Excel Zeile suchen und markieren von: fcs
Geschrieben am: 13.08.2014 15:44:34

Hallo Mathias,

probiere es mal so

        ' Alte Markierung löschen
        .Range(.Cells(2, 1), .Cells(.Rows.Count, 1).End(xlUp)).Resize(, 14).Interior.ColorIndex  _
= xlNone
Gruß
Franz


  

Betrifft: AW: Excel Zeile suchen und markieren von: Matthias Krug
Geschrieben am: 13.08.2014 16:03:59

Super, hat funktkioniert..jetzt bräuchte ich nur noch einen Befehl, der mir mit einem weiteren CommandButton die gelb markierten zeilen zurücksetzt


  

Betrifft: AW: Excel Zeile suchen und markieren von: fcs
Geschrieben am: 14.08.2014 09:18:29

Hallo Mathias,

da musst du in einer Kopie deines Makrkierungsmakro "nur" alles nicht benötigte löschen.

Gruß
Franz

Sub MarkierungEntfernen()
    ' Bei Diagrammblättern gleich raus
    If Not TypeOf ActiveSheet Is Worksheet Then Exit Sub
    With ActiveSheet
        ' Alte Markierung löschen
        .Range(.Cells(2, 1), .Cells(.Rows.Count, 14).End(xlUp)).Interior.ColorIndex = xlNone
    End With
End Sub



  

Betrifft: AW: Excel Zeile suchen und markieren von: Matthias L
Geschrieben am: 13.08.2014 15:53:03

Hallo

Zitat:
wenn ich was gesucht habe und eine zeile gelb markiert ist, und ich will eine erneute suche ausführen bleibt die alte zeile gelb, ich will sie aber wieder in Ursprungszustand versetzen

Was heißt das genau?

Hast eine Zeile gelb gefärbt in der die Spalte(2) rot war und Spalte(4) war blau?
Dann müsstest Du Dir eine Kopie des Blattes anlegen und bei Bedarf die Formatierung dieser Zellen zurückschreiben.

Gruß Matthias


  

Betrifft: AW: Warum nicht Bedingte Formatierung von: Daniel
Geschrieben am: 13.08.2014 16:09:50

HI

Makros finde ich da überflüssig.

Wenn du den Suchtext in eine Zelle schreibst (Z.B. A1) kannst du die Zeilen auch mit Hilfe der Bedingten Formatierung färben, beispielsweise über mit folgender Formel als Regel:
(A1 ist die aktive Zelle)

=UND($A$1<>"";ZählenWenn(1:1;$A$1)>0)
dann brauchst du nur in A1 den Suchtext eingeben und alle Zeilen, die diesen Text in einer Zelle enthalten, werden entsprechend deinen Vorgaben gefärbt.
Alle nicht mehr betroffenen Zeilen verlieren automatisch ihre Farbe.
Die Original-Hintergrundfarbe wird nicht verändert, sie erscheint wieder, wenn die Bedingung nicht mehr zutrifft.

Gruß Daniel


 

Beiträge aus den Excel-Beispielen zum Thema "Excel Zeile suchen und markieren"