Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

mehrere Wörter in der Spalte finden mit vba

Forumthread: mehrere Wörter in der Spalte finden mit vba

mehrere Wörter in der Spalte finden mit vba
08.12.2005 17:20:31
Anja
Hallo leute!
habe eine dringende Frage...
ich möchte, dass wenn in der ersten Spalte Wöter wie "Holiday", "Training", "Vacation" vorkommen, sollten
sie z.B. rot markiert werden.
Ich kann aber mit Find Funktion nur ein Wort finden:
Set c = Range(Cells(I, 1), Cells(I, 1)).Find("*Holiday*", LookIn:=xlValues))
Das FUNKTIONIERT! (aber wie gesagt, nur mit einem Wort!)
Habe auch so versucht:
Set c = Range(Cells(I, 1), Cells(I, 1)).Find("*Holiday*" OR "Training" OR "Vacation", LookIn:=xlValues))
Das geht aber nicht! :(
Giebt es eine Funktion, die meine Aufgabe ausführen kann?
ich würdet mir sehr helfen mit eueren Tipps...
Danke und viele Grüße
Anja
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: mehrere Wörter in der Spalte finden mit vba
08.12.2005 17:44:53
Josef
Hallo Anja!
Z.B. so!
Sub anja()
Dim rngFind As Range
Dim strFirst As String
Dim strFindArray() As Variant
Dim intCount As Integer

strFindArray = Array("Holiday", "Training", "Vacation")

For intCount = 0 To UBound(strFindArray)
  Set rngFind = Range("A:A").Find(What:=strFindArray(intCount), LookIn:=xlValues, LookAt:=xlPart)
  If Not rngFind Is Nothing Then
    strFirst = rngFind.Address
    Do
      rngFind.Interior.ColorIndex = 3
      Set rngFind = Range("A:A").FindNext(rngFind)
    Loop While Not rngFind Is Nothing And rngFind.Address <> strFirst
  End If
  Set rngFind = Nothing
  strFirst = vbNullString
Next

End Sub


'******************************
'* Gruß Sepp
'*
'* Rückmeldung wäre nett!
'******************************

Anzeige
AW: mehrere Wörter in der Spalte finden mit vba
08.12.2005 17:47:48
MartinS
Hallo Anja,
versuchs mal so:

Sub ZellenRotMarkieren ()
Dim Anker as Range
set Anker =  Range("A1")
Do until Anker.value = ""
Select case Anker.value
case "Holiday"
Anker.Interior.ColorIndex = 3
case "Training"
Anker.Interior.ColorIndex = 3
case "Vacation"
Anker.Interior.ColorIndex = 3
end select
Set Anker = Anker.Offset(1, 0)
Loop
End Sub

Gruß,
Martin
Anzeige
AW: mehrere Wörter in der Spalte finden mit vba
08.12.2005 18:47:15
Anja
Hallo :)
ich danke euch :)
super!
viele Grüße
Anja
;
Anzeige
Anzeige

Infobox / Tutorial

Mehrere Wörter in der Spalte finden und markieren mit VBA


Schritt-für-Schritt-Anleitung

Um mehrere Wörter in einer Excel-Spalte zu finden und diese rot zu markieren, kannst du VBA verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Klicke im Menü auf Einfügen und dann auf Modul, um ein neues Modul zu erstellen.
  3. Füge den folgenden Code in das Modul ein:
Sub mehrereWörterMarkieren()
    Dim rngFind As Range
    Dim strFirst As String
    Dim strFindArray() As Variant
    Dim intCount As Integer

    strFindArray = Array("Holiday", "Training", "Vacation")

    For intCount = 0 To UBound(strFindArray)
        Set rngFind = Range("A:A").Find(What:=strFindArray(intCount), LookIn:=xlValues, LookAt:=xlPart)

        If Not rngFind Is Nothing Then
            strFirst = rngFind.Address
            Do
                rngFind.Interior.ColorIndex = 3 'Rot
                Set rngFind = Range("A:A").FindNext(rngFind)
            Loop While Not rngFind Is Nothing And rngFind.Address <> strFirst
        End If
        Set rngFind = Nothing
        strFirst = vbNullString
    Next intCount
End Sub
  1. Schließe den VBA-Editor und gehe zurück zu Excel.
  2. Drücke ALT + F8, wähle mehrereWörterMarkieren und klicke auf Ausführen.

Jetzt werden alle Zellen in der ersten Spalte, die die Wörter "Holiday", "Training" oder "Vacation" enthalten, rot markiert.


Häufige Fehler und Lösungen

  • Fehler: "Fehler beim Kompilieren: Ungültige Prozeduraufruf oder ungültiges Argument"

    • Lösung: Stelle sicher, dass die gesuchte Spalte (A:A) im Excel-Dokument existiert und dass die Wörter korrekt geschrieben sind.
  • Fehler: "Nichts wird markiert."

    • Lösung: Überprüfe, ob die Wörter in der Liste (strFindArray) exakt mit den Zelleninhalten übereinstimmen, einschließlich Groß- und Kleinschreibung.

Alternative Methoden

Neben der VBA-Lösung kannst du auch die bedingte Formatierung in Excel verwenden:

  1. Wähle die Spalte aus, die du formatieren möchtest.
  2. Gehe zu Start > Bedingte Formatierung > Neue Regel.
  3. Wähle Formel zur Ermittlung der zu formatierenden Zellen verwenden.
  4. Gib diese Formel ein:
=ODER(A1="Holiday", A1="Training", A1="Vacation")
  1. Wähle das Format (z.B. rote Füllfarbe) und klicke auf OK.

Diese Methode ist einfach und erfordert kein Programmieren, hat aber Einschränkungen in der Flexibilität.


Praktische Beispiele

Ein weiteres Beispiel für die Verwendung der Find-Methode in VBA könnte sein, wenn du eine Liste von Wörtern hast, die nicht in einem festen Array gespeichert sind. Du kannst die Wörter auch aus einer Zelle oder einem Bereich lesen:

Dim strFindArray As Variant
strFindArray = Split(Range("B1").Value, ",") 'B1 enthält "Holiday, Training, Vacation"

So kannst du dynamisch mehrere Wörter finden und markieren.


Tipps für Profis

  • Verwende Option Explicit am Anfang deines VBA-Moduls, um sicherzustellen, dass alle Variablen deklariert werden. Das hilft dir, Fehler zu vermeiden.
  • Du kannst die Interior.ColorIndex Eigenschaft anpassen, um verschiedene Farben zu verwenden. Die Farbnummer 3 steht für rot, aber du kannst auch andere Farben ausprobieren.
  • Setze Breakpoints im VBA-Code, um den Ablauf des Codes zu überwachen und Fehler leichter zu finden.

FAQ: Häufige Fragen

1. Kann ich mehr als drei Wörter gleichzeitig markieren?
Ja, du kannst das Array strFindArray erweitern, um mehr Wörter hinzuzufügen.

2. Funktioniert dieser Code in allen Excel-Versionen?
Ja, dieser VBA-Code sollte in den meisten modernen Excel-Versionen funktionieren, einschließlich Excel 2010 und höher.

3. Was ist der Unterschied zwischen Find und FindNext?
Find sucht die erste Instanz eines Worts, während FindNext die nächste Instanz nach der ersten findet.

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