Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA Text in Zelle auf Inhalt Prüfen

VBA Text in Zelle auf Inhalt Prüfen
20.06.2018 14:24:21
D2743
Hallo Zusammen habe folgende Problematik
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
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Text in Zelle auf Inhalt Prüfen
20.06.2018 14:40:39
UweD
Hallo
bedingte Formatierung mit Formel.

Tabelle1
 M
1 
2sdsdsd
3dsdlsdsl*ksdks
4dsjdjs
5nvjvj*
6*sdjhgjhas
7ssd
8 
9 
10 
11 
12 
13 
die bedingte Formatierung Fülleffekte, Symbole, Datenbalken
werden in dieser Tabelle nicht dargestellt

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$1001.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$1001.Bed.   Falsch          2$M$2:$M$10
Die Bedingungen wurden mit Excel-Version ab 2007 ausgelesen.

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


LG UweD
Anzeige
AW: VBA Text in Zelle auf Inhalt Prüfen
20.06.2018 14:52:31
D2743
Hallo Uwe schon mal Danke für deine schnelle Hilfe!
Geht das auch per Makro mit schleife durch den Zellbereich?
AW: VBA Text in Zelle auf Inhalt Prüfen
20.06.2018 15:17:40
UweD
Hallo nochmal
ja, so...
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

LG UweD
Anzeige
AW: VBA Text in Zelle auf Inhalt Prüfen
21.06.2018 07:42:27
D2743
Hallo Uwe Super nochmals Dankeschön!
Danke für die Rückmeldung owT
21.06.2018 07:51:48
UweD
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

VBA Text in Zelle auf Inhalt Prüfen


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und gehe zu dem Arbeitsblatt, in dem du die Zellen untersuchen möchtest.

  2. Aktiviere den VBA-Editor mit ALT + F11.

  3. Füge ein neues Modul hinzu:

    • Klicke mit der rechten Maustaste auf "VBAProject (deinWorkbookName)".
    • Wähle "Einfügen" > "Modul".
  4. 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
  5. Schließe den VBA-Editor und gehe zurück zu Excel.

  6. Führe das Makro aus:

    • Drücke ALT + F8, wähle "Makro2" aus und klicke auf "Ausführen".

Häufige Fehler und Lösungen

  • Fehler: "Method 'SpecialCells' of object 'Range' failed"

    • Lösung: Stelle sicher, dass es Zellen mit Text in der betreffenden Spalte gibt. Wenn nicht, wird dieser Fehler angezeigt.
  • Fehler: "Typen unverträglich"

    • Lösung: Überprüfe, ob der Code korrekt kopiert wurde und alle Variablen richtig deklariert sind.
  • Die Zellen färben sich nicht:

    • Stelle sicher, dass das Zeichen * tatsächlich in den Zellen vorhanden ist und dass du die richtige Spalte angibst.

Alternative Methoden

  1. Bedingte Formatierung:

    • Du kannst auch die bedingte Formatierung verwenden, um Zellen einzufärben, die ein bestimmtes Zeichen enthalten:
      • Gehe zu "Start" > "Bedingte Formatierung" > "Neue Regel".
      • Wähle "Formel zur Ermittlung der zu formatierenden Zellen verwenden" und gib die Formel =ISTZAHL(FINDEN("*", M2)) ein, wobei M2 die erste Zelle in der Spalte ist.
  2. Excel-Funktionen:

    • Verwende die Funktion =WENN(ISTZAHL(FINDEN("*", M2)), "Enthält *", "Keine *") um zu prüfen, ob die Zelle das Zeichen enthält.

Praktische Beispiele

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.


Tipps für Profis

  • Verwende Schleifen effizient: Bei großen Datenmengen kann der Einsatz von Application.ScreenUpdating = False zu einer schnelleren Ausführung des Makros führen.
  • Fehlerbehandlung: Füge On Error Resume Next hinzu, um den Code robuster gegen Fehler zu machen.
  • Verwende Named Ranges: Arbeite mit benannten Bereichen, um deine Formeln und VBA-Code übersichtlicher zu gestalten.

FAQ: Häufige Fragen

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.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige