Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1936to1940
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
Marko um Zellen zu färben nacht Text .
12.07.2023 12:36:40
Bernd
Hallo Zusammen,

in meiner Beispieldatei befinden sich im Blatt Farben in den Zellen K2:K12 Bergiffe. Im Bereich L2:L13 befinden sich verschiedene Farb Indexe.
Wäre jemand so freundlich mir ein Makro zu schreiben, welches auf dem Blatt Ausgabe im Bereich J3:V2000 die Begriffe sucht in denen die Worte aus dem Blatt FArben vorkommen und die Zelle neben dem Begriff auf Blatt Aufgabe dann in dem dafür vorgesehenen Farbindex einfärbt ?

Ich habe schon alles Manuell gefärbt um es besser erklären zu können.
https://www.herber.de/bbs/user/159913.xlsm

Danke und Gruß Bernd

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Marko um Zellen zu färben nacht Text .
12.07.2023 12:51:40
Daniel
HI
ist zwar ne Auftragsprogrammierung, aber probiers mal so:

Sub test()
Dim ZelleFarbe
Dim ZelleText
For Each ZelleText In Sheets("Ausgabe").Range("J:V").SpecialCells(xlCellTypeConstants, 2)
    ZelleText.Offset(0, 1).Interior.ColorIndex = xlNone
    For Each ZelleFarbe In Sheets("Farben").Range("K2:K12")
        If ZelleText Like "*" & ZelleFarbe & "*" Then ZelleText.Offset(0, 1).Interior.ColorIndex = ZelleFarbe.Offset(0, 1).Value
    Next
Next
End Sub
Gruß Daniel

AW: Marko um Zellen zu färben nacht Text .
12.07.2023 13:00:30
Bernd_
Hallo Daniel,
das war mir so nicht bewusst. Sorry
Danke für das Makro.
Habe Dein Makro getestet.

Es werden alle Farben die ich manuell gesetzt habe gelöscht. Mehr passiert leider nicht.

Gruß Bernd

Anzeige
AW: Marko um Zellen zu färben nacht Text .
12.07.2023 13:15:30
Daniel
Hi
das ist falsch.
ich setzte nur erst die Farben in der Zelle zurück, dann suche ich die Farbe aus der Liste heraus.
So bleiben die Texte, für die keine Zuordnung gefunden werden kann, weiß.
wenn manuell gefärbte Zellen nicht umgefärbt werden sollen, kannst du die Zeile "ZelleText.Offset(0, 1).Interior.ColorIndex = xlNone" löschen.

der Text berücksichtigt momentan Groß- und Kleinschreibung, dh wenn in der Zelle steht "warten auf Servicepersonal" wird nicht die Farbe von "Personal" zugeordnet, weil das "P" unterschiedlich geschrieben ist.
wenn auch hier die Farbe für Personal eingetragen werden soll, dann müsstest du das so abändern:

If LCase(ZelleText.Text) Like "*" & LCase(ZelleFarbe.Text) & "*" Then ...

ansontsten funktioniert mein Code mit deiner Beispieldatei.
Gruß Daniel

Anzeige
AW: Marko um Zellen zu färben nacht Text .
12.07.2023 13:22:11
Bernd_
Hallo Daniel,

sorry für meine falsche Antwort.

Ich habe keine Ahnung wohin ich den Code aus Deiner letzten Nachricht kopieren soll.

Ja und es sollen alle Wörten auf dem Blatt Ausgabe die die Wörter aus dem Blatt FArben beinhalten gefärt werden.
Alles wo z.B Störung drin vorkommt soll den Code 6 erhalten u.s.w-

Gru0 bernd

AW: Marko um Zellen zu färben nacht Text .
12.07.2023 13:32:56
Piet
Hallo Bernd

der Code von Daniel gehört in ein normales Modul. Du kannst es mit einem normalen CommandButton starten.
Bitte KEIN -ActiveXSteuerlement- nehmen, dem kann man das Makro NICHT direkt zuweisen!

mfg Piet

Anzeige
AW: Grundlkurs VBA
12.07.2023 13:36:57
Bernd_
Ich meinte diese Codezeile
If LCase(ZelleText.Text) Like "*" & LCase(ZelleFarbe.Text) & "*" Then ...
wohin muss die in diesem Code

 Sub test()
     Dim ZelleFarbe
     Dim ZelleText
     For Each ZelleText In Sheets("Ausgabe").Range("J:V").SpecialCells(xlCellTypeConstants, 2)
         ZelleText.Offset(0, 1).Interior.ColorIndex = xlNone
         For Each ZelleFarbe In Sheets("Farben").Range("K2:K12")
             If ZelleText Like "*" & ZelleFarbe & "*" Then ZelleText.Offset(0, 1).Interior.ColorIndex = ZelleFarbe.Offset(0, 1).Value
         Next
     Next
     End Sub

Anzeige
AW: Grundlkurs VBA
12.07.2023 13:41:12
Daniel
du musst die bereits vorhandene Zeile, die mit IF beginnt, entsprechend abändern
das LIKE vergleicht Texte unter berücksichtigung der Groß/Kleinschreibung.
das LCase wandelt im Text alle Großbuchstaben in Kleinbuchstaben um.
Grúß Daniel

AW: Grundlkurs VBA
12.07.2023 13:45:55
Bernd_
Habe ich gemacht.
Es werden abe immer noch alle mit z.B Material in unterschriedlichen Farben eingefärbt.

Es wäre schön wenn alles was z.B Material beinhaltet alles die gleiche FArbe bekommt.

AW: Grundlkurs VBA
12.07.2023 14:02:28
Daniel
Hi
also bei mir wird alles mit Material einheitlich blau.
in deiner aktuellen Beispieldatei kann ich das nicht nachvollziehen.
Lade wenn bitte deine Datei mit deinem Code hoch, in der das Problem besteht.

Wo du aufpassen musst, ist folgendes:
wenn der Text in der Zelle mehrere Wörter aus der Farbenliste enthält, wird die Zelle immer in der Farbe gefärtbt, die in der Liste am weitesten unten steht.
wenn sowas vorkommt, musst du über die Anordnung der Liste "Farbe" festlegen, welches Wort priorität hat.
Gruß Daniel

Anzeige
AW: Marko um Zellen zu färben nacht Text .
12.07.2023 14:23:41
Piet
Hallo Bernd

probiere bitte mal meinen Code aus. Er stammt von Daniel, wurde aber von mir verbessert. Würde mich freuen wenn es damit klappt.
Er löscht beim Starten zuerst alle Innenfarben, markiert die Zellen aber wieder, wenn der Text mit dem Text ZellFarbe übereinstimmt.

mfg Piet

  • Dim ZelleFarbe As Range, ZelleText As Range
    For Each ZelleText In Sheets("Ausgabe (2)").Range("J:V").SpecialCells(xlCellTypeConstants, 2)
    ZelleText.Offset(0, 1).Interior.ColorIndex = xlNone
    For Each ZelleFarbe In Sheets("Farben").Range("K2:K12")
    If InStr(ZelleText, ZelleFarbe) Then
    ZelleText.Offset(0, 1).Interior.ColorIndex = _
    ZelleFarbe.Offset(0, 1).Value
    ElseIf ZelleFarbe = "Personal" And InStr(ZelleText, "Fachpersonal") Then
    ZelleText.Offset(0, 1).Interior.ColorIndex = _
    ZelleFarbe.Offset(0, 1).Value
    End If
    Next
    Next
    End Sub


  • Anzeige
    AW: Marko um Zellen zu färben nacht Text .
    12.07.2023 14:29:27
    Piet
    Nachtrag

    Like ist eine moderne Methode, ich verwende aber immer noch gerne die alten Befehle Instr() zum Textvergleich.
    Wenn mein code zufriedenstellend läuft sollte es egal sein ob alter oder neuer Befehlscode. Hauptsache es klappt.

    mfg Piet

    301 Forumthreads zu ähnlichen Themen

    Anzeige
    Anzeige
    Anzeige

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige