In einer Text Spalte (M) müsste ich nach einem einzelnen Zeichen (*) Suchen [ Bsp. Abcd*V oder *abcfd ] und dann bei vorhanden sein die jeweilige Zelle(n) einfärben.
Ich wäre Dankbar für eure Hilfe
M | |
1 | |
2 | sdsdsd |
3 | dsdlsdsl*ksdks |
4 | dsjdjs |
5 | nvjvj* |
6 | *sdjhgjhas |
7 | ssd |
8 | |
9 | |
10 | |
11 | |
12 | |
13 |
Bedingte Formatierung Haupttabelle 1 | |||||||||||
Wird angewendet auf | Nr. Bed. Regeltyp | Operator | Formel1 | Formel2 | Format Schrift Füll-farbe | Unterstrichen | Schrift- farbe | Muster | Muster-farbe | Typ | Bereich |
$M$2:$M$10 | 01.Bed.: Formel ist | =ISTZAHL(FINDEN("*";M2)) | 255 | 2 | $M$2:$M$10 |
Bedingte Formatierung Haupttabelle 2 | oberere/unterer Bereich | ||||||||
Wird angewendet auf | Nr. Bed. | Format Zelle | Anhalten | Auswahl | Anzeige | Anzahl | Durchschnitt | Typ | Bereich |
$M$2:$M$10 | 01.Bed. | Falsch | 2 | $M$2:$M$10 |
http://excel-inn.de/dateien/vba_beispiele/tabellenanzeige_in_html_addin.zip |
http://Hajo-Excel.de/tools.htm |
XHTML-Tabelle zur Darstellung in Foren, einschl. der neuen Funktionen ab Version 2007 |
Add-In-Version 25.14 einschl. 64 Bit |
Sub Makro2()
Dim TB, Sp As Integer, Zelle
Set TB = Sheets("Tabelle1")
Sp = 13 'Spalte M
With TB
'Reset
.Columns(Sp).Interior.Pattern = xlNone
If WorksheetFunction.CountIf(.Columns(Sp), "<>") > 0 Then
For Each Zelle In .Columns(Sp).SpecialCells(xlCellTypeConstants, 2) ' alle Zellen mit Text
If InStr(Zelle, "*") Then
Zelle.Interior.Color = 255 'rot
End If
Next
End If
End With
End Sub
Öffne Excel und gehe zu dem Arbeitsblatt, in dem du die Zellen untersuchen möchtest.
Aktiviere den VBA-Editor mit ALT + F11
.
Füge ein neues Modul hinzu:
Kopiere den folgenden VBA-Code in das Modul:
Sub Makro2()
Dim TB, Sp As Integer, Zelle
Set TB = Sheets("Tabelle1")
Sp = 13 'Spalte M
With TB
'Reset
.Columns(Sp).Interior.Pattern = xlNone
If WorksheetFunction.CountIf(.Columns(Sp), "<>") > 0 Then
For Each Zelle In .Columns(Sp).SpecialCells(xlCellTypeConstants, 2) ' alle Zellen mit Text
If InStr(Zelle, "*") Then
Zelle.Interior.Color = 255 'rot
End If
Next
End If
End With
End Sub
Schließe den VBA-Editor und gehe zurück zu Excel.
Führe das Makro aus:
ALT + F8
, wähle "Makro2" aus und klicke auf "Ausführen".Fehler: "Method 'SpecialCells' of object 'Range' failed"
Fehler: "Typen unverträglich"
Die Zellen färben sich nicht:
*
tatsächlich in den Zellen vorhanden ist und dass du die richtige Spalte angibst.Bedingte Formatierung:
=ISTZAHL(FINDEN("*", M2))
ein, wobei M2 die erste Zelle in der Spalte ist.Excel-Funktionen:
=WENN(ISTZAHL(FINDEN("*", M2)), "Enthält *", "Keine *")
um zu prüfen, ob die Zelle das Zeichen enthält.Angenommen, du hast folgende Werte in Spalte M:
Zeile | Inhalt |
---|---|
1 | Abcd*V |
2 | Test |
3 | *abcfd |
4 | Beispiel |
5 | nvjvj* |
Nach dem Ausführen des Makros werden die Zellen mit "AbcdV", "abcfd" und "nvjvj*" rot eingefärbt. Dies zeigt, wie du mit Excel VBA Zelle auf Inhalt prüfen
kannst, um schnell Informationen zu visualisieren.
Application.ScreenUpdating = False
zu einer schnelleren Ausführung des Makros führen.On Error Resume Next
hinzu, um den Code robuster gegen Fehler zu machen.1. Wie kann ich das Makro anpassen, um mehrere Zeichen zu überprüfen?
Du kannst die Bedingung in der If
-Anweisung erweitern, um mehrere Zeichen zu überprüfen, z.B. If InStr(Zelle, "*") Or InStr(Zelle, "#") Then
.
2. Funktioniert das auch in älteren Excel-Versionen? Ja, der gezeigte VBA-Code wird ab Excel 2007 unterstützt. Für ältere Versionen kann es geringfügige Anpassungen erfordern.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen