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

Forumthread: VBA-Variable für bedingte Formatierung

VBA-Variable für bedingte Formatierung
01.06.2007 14:34:00
Mathias
Hallo,
kann man eine in VBA definierte Variable in einer bedingten Formatierung *direkt* verwenden bzw. abfragen (also *ohne* den Inhalt der Variable vorher in eine bestimmte Zelle schreiben zu müssen) ?
Konkret möchte ich "ActiveCell.Row" in einer bedingten Formatierung verwenden.
Viele Grüße
Mathias

Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA-Variable für bedingte Formatierung
01.06.2007 15:09:17
Oberschlumpf
Hi Mathias
Jetzt müsste man nur noch wissen, WANN du die aktive Zeile abfragen willst?
Anbieten würde sich das ChangeEreignis eines Tabellenblattes.
Da könntest du das hier rein schreiben:
If ActiveCell.Row = DeineZeile Then Dein Makro End If


Konnte ich helfen?
Ciao
Thorsten

Anzeige
AW: VBA-Variable für bedingte Formatierung
01.06.2007 15:42:00
Mathias
Hallo,
vielen Dank für den Tipp.
Ich möchte die Variable allerdings NICHT in einem Makro abfragen, sondern in einer Formel für eine bedingte Formatierung einer Zelle und das möglichst, ohne den Variableninhalt in eine andere Zelle reinschreiben zu müssen...
Viele Grüße
Mathias

Anzeige
AW: VBA-Variable für bedingte Formatierung
01.06.2007 16:05:00
Oberschlumpf
HI
Tja, ich denk, das wird nix - denn (meines Wissens) - Excel arbeitet in Formeln nun mal mit relativen und/oder absoluten Zellbezügen.
Ciao
Thorsten

AW: VBA-Variable für bedingte Formatierung
01.06.2007 16:22:39
Ramses
Hallo Thorsten und Matthias
ActiveCell.Row
heisst in der Formelsprache ganz einfach
ZEILE()
Gruss Rainer

Anzeige
AW: VBA-Variable für bedingte Formatierung
01.06.2007 16:39:00
Mathias
Hallo Rainer,
wenn ich das richtig sehe, bekomme ich damit aber "nur" die Zeilennummer einer bestimmten Zelle,
nicht jedoch die Zeilennummer der gerade selektierten Zelle, oder?
Viele Grüße
Mathias

AW: VBA-Variable für bedingte Formatierung
01.06.2007 22:21:00
Ramses
Hallo
Probiers doch einfach mal aus :-)
Sheet1

 AB
11 
22 
33 
44 
55 

Formeln der Tabelle
ZelleFormel
A1=ROW()
A2=ROW()
A3=ROW()
A4=ROW()
A5=ROW()


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Englisch:
=ROW()
Deutsch:
=ZEILE()
Wenn du das in der Bedingten Formatierung verwendest, bezieht es sich immer auf die aktive Zelle.
Gruss Rainer

Anzeige
AW: VBA-Variable für bedingte Formatierung
02.06.2007 08:44:00
Mathias
Hallo Rainer,
vielen Dank für deine Hinweise. Ich hab es ausprobiert.
Bei mir bekomme ich immer nur die Zeilennummer der Zelle, in der die bedingte Formatierung verwendet wurde. Also bei A1 liefert Zeile() immer 1, bei A2 liefert es 2 usw usw. Das ist aber nicht das was ich suche...
Viele Grüße
Mathias

Anzeige
AW: VBA-Variable für bedingte Formatierung
02.06.2007 21:07:08
Ramses
Hallo
was suchst du denn dann ?
ZEILE() = ACTIVECELL.ROW
Gruss Rainer

Variablen aus VBA kann man weder in...
03.06.2007 00:36:00
Luc:-?
...einer Zelle noch in der bedingten Formatierung direkt mit ihrem Namen verwenden, Mathias.
Excel kann mit einem solchen Namen nichts anfangen. Es gibt aber Möglichkeiten...
1. Du müsstest einen Excel-Namen kreieren (mit VBA), dem du dann im Namenswert (=Formelbezug) mit VBA den Wert deiner Variablen zuweist [name = "=" & variable].
2. Du erzeugst die bedingte Formatierung mit einer VBA-Prozedur - der Variablenwert kann dann direkt in die Formel eingebaut wdn.
3. Du schreibst eine udFkt (VBA-FunctionProcedure), der du als Argument den Namen deiner Globalvariablen als Text übergibst. Der muss dann ausgewertet wdn. Da das mit Evaluate aus gleichen Gründen nicht klappen kann, muss der Variablennamenstext in eine automatisch erzeugte kleine Prozedur eingefügt wdn, die eine weitere Globalvariable mit dem Wert der so ausgewerteten Variablen füllt, die deine udFkt dann zurückgibt. Da du sicher merkst, dass das hier nicht gerade sinnvoll ist, würde...
4. auch ein udFkt-interner Vgl des Namenstextes mit einer Liste von Namen (wenn es um mehrere Variablen geht) oder einfach nur die Ausgabe des (Global-)Variablenwerts reichen.
Die unter 3. geschilderte Methode wäre anzuwenden, wenn du z.B. die Werte von Excel-Konstanten ermitteln willst/musst, die die Hilfe nur mit Namen aufführt.
Die unter 3./4. geschilderte udFkt fkt nur dann in der bedingten Formatierung, wenn sie sich in der gleichen Arbeitsmappe oder im Wertzuweis eines Namens (benannte Formel) befindet oder im VBA-Editor für die Mappe mit der bedingten Formatierung ein Verweis auf den Standort der udFkt (z.B. in einem AddIn, das dann mit dem AddIn-Manager eingebunden wdn muss) gesetzt wurde.
Gruß (auch an Rainer)
Luc :-?

Anzeige
AW: Variablen aus VBA kann man weder in...
04.06.2007 19:57:00
Mathias
Hallo,
vielen Dank für den umfangreichen Hinweis. Hört sich ziemlich kompliziert an. Ich denke ich werde versuchen das Problem anders zu lösen. Nochmal vielen Dank!!!
Viele Grüße
Mathias

na bitte, geht doch.
04.06.2007 23:02:00
.
n
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

VBA-Variable für bedingte Formatierung in Excel


Schritt-für-Schritt-Anleitung

Um eine VBA-Variable in der bedingten Formatierung zu verwenden, gibt es einige grundlegende Schritte, die Du beachten musst. Hier ist eine einfache Anleitung:

  1. Öffne den VBA-Editor: Drücke ALT + F11.
  2. Erstelle ein neues Modul: Klicke auf Einfügen > Modul.
  3. Definiere Deine Variable: Zum Beispiel:
    Dim DeineZeile As Integer
    DeineZeile = ActiveCell.Row
  4. Erstelle den Namen für Deine Variable: Das ist notwendig, um die Variable in der bedingten Formatierung zu verwenden.
    ThisWorkbook.Names.Add Name:="DeineZeile", RefersTo:="=" & DeineZeile
  5. Gehe zurück zu Excel: Wähle die Zelle aus, die Du formatieren möchtest.
  6. Öffne die bedingte Formatierung: Gehe zu Start > Bedingte Formatierung > Neue Regel.
  7. Wähle "Formel zur Ermittlung der zu formatierenden Zellen verwenden": Gib Deine Formel ein, z.B.:
    =ZEILE()=DeineZeile
  8. Wähle das Format: Lege fest, wie die Zelle formatiert werden soll, wenn die Bedingung erfüllt ist.
  9. Bestätige die Regel: Klicke auf OK, um die Regel zu speichern.

Häufige Fehler und Lösungen

  • Fehler: Die bedingte Formatierung funktioniert nicht wie erwartet.

    • Lösung: Überprüfe, ob die Variable korrekt definiert und der Name in der Formel richtig verwendet wurde.
  • Fehler: #NAME? Fehler in der bedingten Formatierung.

    • Lösung: Stelle sicher, dass der Name der Variable korrekt geschrieben ist und die Referenz vorhanden ist.
  • Fehler: Die Zeilennummer wird nicht aktualisiert.

    • Lösung: Verwende die ActiveCell.Row-Eigenschaft, um sicherzustellen, dass die aktuelle Zeile verwendet wird.

Alternative Methoden

Wenn Du eine VBA-Variable nicht direkt in der bedingten Formatierung verwenden möchtest, gibt es alternative Herangehensweisen:

  1. Makros verwenden: Erstelle ein Makro, das die bedingte Formatierung anwendet. Beispiel:

    Sub BedingteFormatierung()
       Dim rng As Range
       Set rng = ActiveSheet.Range("A1:A10")
       rng.FormatConditions.Add Type:=xlExpression, Formula1:="=ZEILE()=ActiveCell.Row"
       rng.FormatConditions(1).Interior.Color = RGB(255, 255, 0)
    End Sub
  2. Definiere benannte Bereiche: Verwende die Excel-Funktion "Benannte Bereiche", um dynamische Bereiche zu erstellen, die sich an die aktive Zelle anpassen.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie Du die bedingte Formatierung in Excel mit VBA-Variablen nutzen kannst:

  • Beispiel 1: Markiere die aktive Zeile in einer Tabelle.

    Assuming ActiveCell.Row = 3, die Regel wäre: =ZEILE()=3
  • Beispiel 2: Setze eine Formatierung für die aktuelle Spalte.

    =SPALTE()=ActiveCell.Column

Diese Beispiele helfen Dir, die Funktionalität besser zu verstehen und anzuwenden.


Tipps für Profis

  • Nutze Worksheet_Change-Ereignisse, um die bedingte Formatierung dynamisch zu aktualisieren, basierend auf Änderungen in der Excel-Tabelle.
  • Experimentiere mit verschiedenen Formeln in der bedingten Formatierung, um kreativere Formatierungen zu erzielen.
  • Speichere Deine VBA-Codes in einem Add-In, um sie schnell in anderen Projekten nutzen zu können.

FAQ: Häufige Fragen

1. Kann ich VBA-Variablen in der bedingten Formatierung direkt verwenden?
Nein, Du musst sie zuerst in einen benannten Bereich umwandeln.

2. Wie kann ich die aktive Zeile in der bedingten Formatierung verwenden?
Verwende die Formel =ZEILE()=ActiveCell.Row in der bedingten Formatierung.

3. Was passiert, wenn die bedingte Formatierung nicht funktioniert?
Überprüfe die Schreibweise der Namen und stelle sicher, dass die Referenzen korrekt gesetzt sind.

Diese Informationen sollten Dir helfen, eine effektive bedingte Formatierung mit VBA-Variablen in Excel zu nutzen.

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