Excel VBA Makro zum suchen und markieren von Zeilen die ein bestimmtes Wort enthalten

Dieses Thema Excel VBA Makro zum suchen und markieren von Zeilen die ein bestimmtes Wort enthalten im Forum "Microsoft Office Suite" wurde erstellt von Burni, 16. Juni 2014.

Thema: Excel VBA Makro zum suchen und markieren von Zeilen die ein bestimmtes Wort enthalten Hey Leute, ich bin langsam etwas am verzweifeln. Da meine Kenntnisse aus der Uni leider nicht sehr weit in die...

  1. Hey Leute,

    ich bin langsam etwas am verzweifeln.
    Da meine Kenntnisse aus der Uni leider nicht sehr weit in die VBA programmierung reichen, habe ich vergeblich versucht ein Marko zu finden das folgendes kann.

    Also ich suche ein Makro, in dem ich nach einem Wort zu suchen (auch im Fließtext einer Zelle) kann und das Makro dann die entprechende Zeile komplett farblich markiert oder halt in ein neues Tabbelenblatt kopiert oder iwie sowas.

    Beispiel:
    [table=width: 500, class: outer_border]
    [tr]
    [td]hallo[/td]
    [td]Willkommen[/td]
    [/tr]
    [tr]
    [td]Herzlichen Glückwunsch[/td]
    [td]Wie gehts dir so[/td]
    [/tr]
    [tr]
    [td] Hey Hallo Wie gehts?[/td]
    [td]Grüß dich[/td]
    [/tr]
    [/table]


    Wenn ich also jetzt nach hallo suche, soll der mir die kompletten Zeilen 1 und 2 farblich markieren.

    Ich wäre euch für eure Hilfe seeehr dankbar !!

    PS: Es wird für größere Exceltabellen benötigt ( an die 12 MB groß)
     
  2. Hallo Burni, du meinst sicher Zeile 1 und 3 markieren, oder?

    Das folgende Makro setzt voraus, dass in der Tabelle keine Zellen manuell eingefärbt sind, denn es löscht erstmal alle Zellfarben in der ganzen Tabelle, um danach nur die Zeilen gelb zu markieren, die das gewünschte Suchwort (besser: die gewünschte Zeichenkette) enthalten. Schriftfarben und bedingte Formatierungen werden nicht angerührt.
    Die Zeichenkette wird über eine Eingabemaske eingegeben.

    Hier im Forum werden die Anführungszeichen nicht dargestellt, was das Makro unbrauchbar macht. Ich ersetze Anführungszeichen durch Paragraphenzeichen und mach sie rot:

    Sub Wortmarkierung()
    ' ein original Klexy-Makro
    ' Sucht das eingegebene Wort entweder im gesamten verwendeten Bereich des Tabellenblatts
    ' oder nur im markierten Bereich, wenn ein Bereich von 2 oder mehr Zellen markiert ist

    ' Variablen festlegen:
    Dim zAnzahl As Long, zRange As Range, zFarbe As Integer, zWort As String, i As Integer

    ' Variablen definieren:
    zAnzahl = Selection.Cells.Count ' Anzahl der Zellen, die markiert sind (wenn mehr als 1 markiert ist)
    Set zRange = Selection ' Bereich der markierten Zellen
    zFarbe = 6 ' Farbe, mit der die Zeile eingefärbt werden soll
    ' Info zu den Farben hier: Farben
    i = 0 ' der Zähler zählt die Anzahl der male, bei denen kein Suchwort in die Eingabemaske eingetragen wird


    ActiveSheet.Cells.Interior.ColorIndex = 0
    ' zuerst wird das ganze Tabellenblatt entfärbt, damit es
    ' keine von der vorigen Wortsuche übriggebliebene Färbungen gibt

    NochmalEingeben:
    'Eingabemaske für das Suchwort:
    zWort = InputBox(Chr(13) & Chr(13) & §Bitte Suchwort eintragen§ & Chr(13) & §§, Z§eile mit Suchwort markieren§)
    ' Groß/Kleinschreibung wird nicht berücksichtigt, es können auch Ziffern sein

    If zWort = §§ Then ' wenn kein Suchwort in die Eingabemaske eingegeben wurde
    i = i + 1 ' wenn kein Suchwort eingegeben wurde, wird der Zähler um 1 hochgezählt

    If i <= 2 Then ' wenn der Zähler 2 ist, wird das Makro abgebrochen
    Exit Sub
    Else
    MsgBox §Es muss mindestens ein Zeichen eingegeben werden.§
    'i = i + 1
    GoTo NochmalEingeben ' wenn der Zähler unter 2 ist, springt das Makro nochmal zur Eingabemaske
    End If

    Else

    If zAnzahl > 1 Then ' wenn mehrere Zellen markiert sind
    For Each Cell In zRange
    If InStr(1, Cell.Value, zWort) > 0 Then
    Cell.EntireRow.Interior.ColorIndex = zFarbe
    Else
    End If
    On Error Resume Next
    Next Cell
    Else ' wenn nix markiert ist, also das ganze Blatt durchsucht werden soll
    For Each Cell In ActiveSheet.UsedRange
    If InStr(1, Cell.Value, zWort) > 0 Then
    Cell.EntireRow.Interior.ColorIndex = zFarbe
    Else
    End If
    On Error Resume Next
    Next Cell
    End If

    End If
    MsgBox § Feddisch. §

    End Sub
     
    Zuletzt bearbeitet: 17. Juni 2014
  3. WOW !!!
    Vielen vielen Dank Klexy_16!!!!
    Jap ich meinte Zeile 1 und 3 :embarrassed:
    Läuft super!

    PS: eine kleine Anmerkung hab ich doch ;-) bei NochmalEingeben:
    'Eingabemaske für das Suchwort:
    zWort = InputBox(Chr(13) & Chr(13) & §Bitte Suchwort eintragen§ & Chr(13) & §§, Z§eile mit Suchwort markieren§)

    muss das § vor das Z

    aber dann läuft es TOP !
     
  4. Das mit dem §Z stimmt. Hab mich vertan, nachdem mir das Forum alle Anführungszeichen rausgelöscht hat.
    Freut mich, dass ich helfen konnte.
     
  5. :embarrassed::cry::meld::confused:
    Ich hätte da nochmal eine kurze Frage :p

    Das Marko funktioniert super und ist echt hilfreich!!

    Allerdings arbeite ich jetzt mit so großen Exceltabellen in dessen Zellen auch teilweise kleine Romane stehen.
    Wie könnte man das Marko umschreiben damit nur die Zellen markiert wird in der das gesuchte Wort dann auch steht und nicht mehr die gesamte Zeile ?

    Vielen Dank für die hilfe ;-)

    Gruß Burni
     
  6. statt
    Cell.EntireRow.Interior.ColorIndex = zFarbe
    nur
    Cell.Interior.ColorIndex = zFarbe

    VBA kann wie ein normaler Text entziffert und modifiziert werden.
     
Die Seite wird geladen...

Excel VBA Makro zum suchen und markieren von Zeilen die ein bestimmtes Wort enthalten - Ähnliche Themen

Forum Datum
Excel VBA Makro zum suchen eines Textes und anschließend einen Breich zu kopieren Microsoft Office Suite 22. Jan. 2015
Excel: Makro ASCII verschieben Windows XP Forum 8. Nov. 2013
Makros und anderes - Excel Microsoft Office Suite 15. März 2013
Excel Sprungmarke mitten in ein anderes Makro Windows XP Forum 15. März 2012
Excel Makro Windows XP Forum 29. Apr. 2011