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

Forumthread: VBA - Wenn Zelle "x" enthält, dann andere Zelle fa

VBA - Wenn Zelle "x" enthält, dann andere Zelle fa
13.02.2014 15:10:58
Matthias
Hallo liebe Excel Gemeinde,
habe folgendes Problem: In Spalte Y sind in bestimmten Zeilen ein "x" eingetragen. In Spalte AA sind Zellen farblich markiert. Ich möchte nun bei VBA überall dort wo in Spalte Y ein "x" enthalten ist, die farbliche Markierung in Spalte AA (selbe Zeile) aufheben bzw. keine Füllung.
Kann mir jemand dabei helfen?
Vielen Dank!
Gruß
Matthias

Anzeige

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

Betreff
Datum
Anwender
Anzeige
Wenn Zelle "x" enthält, dann andere Zelle fa
13.02.2014 15:17:22
Hajo_Zi
Hallo Matthias,
warum VBA. Benutze die bedingte Formatierung.

AW: Wenn Zelle "x" enthält, dann andere Zelle fa
13.02.2014 15:26:37
Matthias
Hallo Hajo,
war auch meine erste Idee aber leider funktioniert der "Anschlussweg" damit nicht, der wäre, dass sich auf Spalte AA ein PieChart die Farben zieht. Mein Code dafür erkennt leider nicht die bedingte Formatierung an sondern nimmt immer die Farbe, die vorher quasi drin war. Deswegen dieser Weg.

Anzeige
AW: Wenn Zelle "x" enthält, dann andere Zelle fa
13.02.2014 15:30:22
Matthias
Leider bekomme ich hier keine richtige Schleife drum gelegt
Sub Farbige()
Dim myseries
If Range("Y3") = "x" Then
Range("AA3").Select
With Selection.Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
End If
End Sub
Man müsste das jetzt quasi für jede Zeile machen....NERV

Anzeige
AW: Wenn Zelle "x" enthält, dann andere Zelle fa
13.02.2014 15:50:54
Peter
Hallo Mattias
Probier mal:
Sub Farbe()
Dim e As Object
For Each e In Sheets("Tabelle1").Range("Y1:Y" & Cells(Rows.Count, 25).End(xlUp).Row)
If e.Value = "x" Then
With e.Offset(0, 2).Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
End If
Next e
End Sub
Gruß
Peter

Anzeige
AW: Wenn Zelle "x" enthält, dann andere Zelle fa
13.02.2014 16:08:09
Matthias
Hallo Peter,
funktioniert PERFEKT!
Danke mein Frust hat ein Ende ;-)
Matthias

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zelle "x" erkennen und andere Zellen anpassen mit VBA


Schritt-für-Schritt-Anleitung

Um in Excel VBA eine Aktion auszuführen, wenn eine Zelle einen bestimmten Wert enthält (z.B. "x"), kannst du den folgenden VBA-Code verwenden. Dieser Code überprüft die Zellen in Spalte Y und entfernt die Füllung der Zellen in Spalte AA in der gleichen Zeile, wenn in Spalte Y ein "x" steht.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Klicke im Menü auf Einfügen und wähle Modul.

  3. Füge den folgenden Code in das Modul ein:

    Sub Farbe()
       Dim e As Object
       For Each e In Sheets("Tabelle1").Range("Y1:Y" & Cells(Rows.Count, 25).End(xlUp).Row)
           If e.Value = "x" Then
               With e.Offset(0, 2).Interior
                   .Pattern = xlNone
                   .TintAndShade = 0
                   .PatternTintAndShade = 0
               End With
           End If
       Next e
    End Sub
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Führe das Makro aus, um die Füllung in Spalte AA zu entfernen, wenn in Spalte Y ein "x" steht.


Häufige Fehler und Lösungen

  • Fehler: Das Makro läuft nicht oder gibt eine Fehlermeldung aus.

    • Lösung: Überprüfe, ob die Tabelle den Namen "Tabelle1" hat. Ändere den Namen im Code, wenn deine Tabelle anders heißt.
  • Fehler: Die Zellen in Spalte AA werden nicht wie gewünscht aktualisiert.

    • Lösung: Stelle sicher, dass in den Zellen der Spalte Y tatsächlich ein "x" steht und keine Leerzeichen oder andere unsichtbare Zeichen enthalten sind.

Alternative Methoden

Falls du kein VBA verwenden möchtest, kannst du auch die bedingte Formatierung nutzen, um Zellen basierend auf dem Inhalt anderer Zellen zu formatieren. Gehe dazu folgendermaßen vor:

  1. Wähle die Zellen in Spalte AA aus.
  2. Gehe zu Start > Bedingte Formatierung > Neue Regel.
  3. Wähle Formel zur Ermittlung der zu formatierenden Zellen verwenden.
  4. Gib die Formel =$Y1="x" ein.
  5. Wähle die gewünschte Formatierung aus und klicke auf OK.

Beachte jedoch, dass die bedingte Formatierung nicht direkt von VBA zur Erstellung von Diagrammen verwendet werden kann, wie im Thread erwähnt wurde.


Praktische Beispiele

  • Beispiel 1: Angenommen, in Zelle Y3 steht ein "x". Wenn du das Makro ausführst, wird die Füllung in Zelle AA3 entfernt.

  • Beispiel 2: Wenn du eine andere Bedingung hinzufügen möchtest, wie z.B. "y", kannst du den Code entsprechend anpassen:

    If e.Value = "x" Or e.Value = "y" Then
       ' Füllung entfernen oder andere Aktion
    End If

Tipps für Profis

  • Verwende Application.ScreenUpdating = False zu Beginn deines Makros, um die Bildschirmaktualisierung während der Ausführung zu deaktivieren. Dies kann die Performance bei großen Datenmengen verbessern.

  • Denke daran, das Makro regelmäßig zu testen, besonders wenn du zusätzliche Bedingungen hinzufügst.

  • Nutze Option Explicit am Anfang deines Moduls, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler zu vermeiden.


FAQ: Häufige Fragen

1. Wie kann ich das Makro automatisch beim Öffnen der Datei ausführen? Du kannst das Makro im Workbook_Open-Ereignis in ThisWorkbook einfügen, um es beim Öffnen der Datei automatisch auszuführen.

2. Was mache ich, wenn ich mehrere Bedingungen überprüfen möchte? Du kannst mehrere If-Bedingungen mit ElseIf hinzufügen oder eine Select Case-Anweisung verwenden, um mehrere Werte zu überprüfen.

3. Kann ich das Makro auf andere Spalten anwenden? Ja, ändere einfach die Spaltenbuchstaben im Code, um die gewünschten Spalten zu verwenden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige