Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1384to1388
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
Inhaltsverzeichnis

EXCEL Zellenformatierung per Liste (Makro) und vi

EXCEL Zellenformatierung per Liste (Makro) und vi
29.09.2014 23:37:12
Robert
Hallo zusammen,
ich habe eine Liste per Datenüberprüfung erstellt welche die Werte 1-5 enthält. Zudem ist eine leere Selektion innerhalt der Liste möglich. Wird Wert 1 in der Liste selektiert lasse ich per vorher aufgenommenem Makro die Zelle A3 schwarz umranden und orange befüllen. Wird Wert 2 in der Liste selektiert wird nebst Zelle A3 auch Zelle A4 gleichermaßen formatiert. Selbiges Prozedere erfolgt bei der Selektion der anderen Datenwerte, d.h. maximal sind die Zellen A3:A7 wie vorher beschrieben formatiert.
Mein Problem besteht jetzt in der Rückwärtsformatierung, wenn man es denn so nennen mag. Ein User selektiert nun den Datenwert 5 und A3:A7 sind formatiert. Selektiert der User aber nun den leeren Datenwert oder einen niedrigeren als 5 bleiben dennoch alle zuvor formatierten Zellen in der Formatierung bestehen.
Wie kann ich EXCEL/VBA dazu bewegen die überschüssigen Zellen wieder zum Ausgangsformat zurückzuformatieren bzw. überhaupt zu erkennen und nur die Zellen entsprechend des selektierten Datenwertes in der entsprechenden Formatierung beizubehalten.
Beispiel:
Datenwert 5 selektiert A3:A7 formatiert
danach Datenwert 3 selektiert A3:A5 formatiert (bzw. bleiben formatiert) und A6:A7 ins Standardzellenformat zurückformatiert
Ich hoffe ihr könnt mir hier weiterhelfen
mfG
Robert

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Aber sicher, ...
30.09.2014 04:38:18
Luc:-?
…Robert;
doch vergiss dein Pgm und färbe die potenziellen AuswahlZellen per BedingtFormatierung!
Dazu legst du zuerst 2 Namen (hier der Mappe) an, dem einen (→Auswahl) ordnest du im Bezug den Wert 0, dem anderen (→AwListe) deinen ListenBereich zu. Anschließend selektierst du den zu färbenden Bereich und schreibst als Regel lt 6.MenüPkt die Fml: =ZEILE()=Auswahl+2
Zuletzt legst du noch die EreignisProzedur SelectionChange für das gegebene Blatt an:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Const naRelBer$ = "AwListe", naRelKonst$ = "Auswahl"
If Target.Count = 1 And Not Intersect(Target, Me.Range(naRelBer)) Is Nothing Then _
Me.Parent.Names(naRelKonst).Value = IIf(IsEmpty(Target), 0, Target)
End Sub
Damit ist gewährleistet, dass sich nur die ausgewählte Zelle färbt. Wird die Leerzelle gewählt, wird die Konstante auf 0, sonst auf den ausgewählten Listenwert gestellt. Die Auswahl irgendeiner anderen Zelle (außerhalb der Liste) hat keine Auswirkungen (die korrespondierende der zuletzt ausgewählten ListenZelle behält ihre Formatierung).
Das Pgm ist so eingestellt, dass stets nur eine Zelle markiert wdn kann.
Morrn, Luc :-?

Anzeige
Falls du allerdings nur mit 1 EingabeZelle und ...
30.09.2014 08:53:24
Luc:-?
…einer GültigkeitsListe Leer/1…5 arbeitest, Robert,
diese (aus deiner Frage herauslesbare) Möglichkeit ist mir etwas untergegangen, kannst du entweder analog, aber mit Worksheet_­Change, oder ganz ohne VBA arbeiten, indem du statt einer Konstante für Auswahl hier auf die Eingabe­Zelle beziehst.
Mein letzter Vorschlag ist wohl der mit Abstand eleganteste, denn dabei brauchst du weder VBA noch irgend­welches Zurück­setzen der Zell­farbe und -rahmen, was ohnehin kontra­produktiv bei einer anderen Zell-Grund­farbe als ungefärbt-weiß wäre, woran Daniel (gern andere Lösungen ignorierend) offensicht­lich nicht gedacht hat.
Luc :-?

Anzeige
AW: EXCEL Zellenformatierung per Liste (Makro) und vi
30.09.2014 07:27:50
Daniel
Hi
Am einfachsten, indem du zuerst in allen 5 Zellen das Format zurücksetzt und danach die Anzahl der ausgewählten Zellen formatierst.
Range("a3:a7").ClearFormats
Gruß Daniel

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige