Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1428to1432
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

Setzen von Symbolsätzen per Makro

Setzen von Symbolsätzen per Makro
10.06.2015 13:56:15
Symbolsätzen
Hallo zusammen,
ich bin ziemlicher Excel-Neuling und habe zu einem respektiven Makro eine Frage. Da ich mir das Makro selber zusammengebastelt habe und mich in VBA praktisch nicht auskenne bitte ich um Verständnis für meine Unwissenheit.
Ich habe mich für folgende Variante entschieden, da Symbolsätze ja leider nicht einfach auf mehrere Zellen angewandt werden können, da nur absolute Zellbezüge erlaubt sind.
Das Makro soll zuerst bestehende bedingte Formatierungen löschen und dann den Symbolsatz "Ampeln" entsprechend eines Vergleichs zweier Zellen setzen. Hierzu wird die aktive Zelle mit der linken Nachbarzelle verglichen und die Ampel grün geschaltet, wenn der Wert größergleich, gelb geschaltet, wenn der Wert um bis zu 10 Prozent nach unten abweicht und rot geschaltet, wenn der Wert noch kleiner ist. Soviel zur Theorie, hier mein Makro:

Sub GruenWennGroesserLinkesTarget()
' GruenWennGroesserLinkesTarget Makro
ActiveCell.Select
Selection.FormatConditions.Delete
Selection.FormatConditions.AddIconSetCondition
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1)
.ReverseOrder = False
.ShowIconOnly = False
.IconSet = ActiveWorkbook.IconSets(xl3TrafficLights1)
End With
With Selection.FormatConditions(1).IconCriteria(2)
.Type = xlConditionValueNumber
.Value = ActiveCell.Offset(0, -1) * "0,9"
.Operator = 7
End With
With Selection.FormatConditions(1).IconCriteria(3)
.Type = xlConditionValueNumber
.Value = ActiveCell.Offset(0, -1)
.Operator = 7
End With
End Sub
Das ganze klappt soweit auch wie es soll, jedoch würde ich gerne mehrere Zellen auf einmal bearbeiten, welche ich vorher markiere/auswähle. Also: Ich markiere einen unbestimmt großen Zellbereich einer bestimmten Spalte und wende das Makro an, sodass obenstehendes Makro auf alle ausgewählten Zellen angewandt wird.
ist dies ohne großen Aufwand möglich? Oder gibt es sonst noch Vorschläge?
Grüße, Jan

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

Betreff
Datum
Anwender
Anzeige
AW: Setzen von Symbolsätzen per Makro
10.06.2015 14:10:47
Symbolsätzen
Hallo Jan,
was es nicht alles in Excel gibt! Danke für was Neues...
Die Erweiterung ist nicht besonders aufwendig: eine foreach-Schleife tut's; insgesamt sieht es dann so aus:
Sub GruenWennGroesserLinkesTarget()
Dim c As Range
For Each c In Selection
c.FormatConditions.Delete
c.FormatConditions.AddIconSetCondition
c.FormatConditions(c.FormatConditions.Count).SetFirstPriority
With c.FormatConditions(1)
.ReverseOrder = False
.ShowIconOnly = False
.IconSet = ActiveWorkbook.IconSets(xl3TrafficLights1)
End With
With c.FormatConditions(1).IconCriteria(2)
.Type = xlConditionValueNumber
.Value = c.Offset(0, -1) * "0,9"
.Operator = 7
End With
With c.FormatConditions(1).IconCriteria(3)
.Type = xlConditionValueNumber
.Value = c.Offset(0, -1)
.Operator = 7
End With
Next
End Sub
Happy Exceling,
Michael

Anzeige
AW: Setzen von Symbolsätzen per Makro
10.06.2015 14:13:34
Symbolsätzen
Hi Jan,
einfach das "Activecell.select" weglassen.
Dann benutzt das Programm, die von dir ausgewählten Zellen :)

Selection.FormatConditions.Delete
Selection.FormatConditions.AddIconSetCondition
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1)
.ReverseOrder = False
.ShowIconOnly = False
.IconSet = ActiveWorkbook.IconSets(xl3TrafficLights1)
End With
With Selection.FormatConditions(1).IconCriteria(2)
.Type = xlConditionValueNumber
.Value = ActiveCell.Offset(0, -1) * "0,9"
.Operator = 7
End With
With Selection.FormatConditions(1).IconCriteria(3)
.Type = xlConditionValueNumber
.Value = ActiveCell.Offset(0, -1)
.Operator = 7
End With
End Sub

Anzeige
AW: Setzen von Symbolsätzen per Makro
10.06.2015 14:20:30
Symbolsätzen
Danke vielmals euch beiden!
Wie nicht anders zu erwarten, funktionieren beide Lösungen exakt wie ich es gerne hätte.
Und ein besonderes Danke für die extrem schnellen Antworten!
Gruß, Jan

AW: Setzen von Symbolsätzen per Makro
10.06.2015 14:43:11
Symbolsätzen
Sorry, nach ausgiebigerem Testen:
Die Lösung von Kenny setzt die Vergleichswerte immer nur auf die der linken Nachbarzelle der ersten Zell, welche ausgewählt ist. Deutlicher: Wenn ich in einer Spalte 10 Zellen markiere und das Makro ausführe, wird bei allen 10 Zellen nur mit der linken Nachbarzelle der ersten Zelle verglichen.
Die Lösung von Michael funktioniert ohne Probleme.
Danke nochmals!
Jan

Anzeige
gerne, vielen Dank für die Rückmeldung
12.06.2015 19:12:44
Michael
@kenny: bin auch beim ersten Test darübergestolpert, daß in den beiden WITHs (noch) activecell drinstand - das kann net gehen.
Gruß,
Michael

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige