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

Dringend: Fehler in kleinem Code

Dringend: Fehler in kleinem Code
14.12.2012 08:12:15
Tim
Hallo liebes Forum,
ich verwende folgenden Code in einem Makro und brauche dringend Eure Hilfe.
Obwohl beide Formatierungen (blauer Hintergrund und Symbolsatz) korrekt gesetzt werden, greift nur die Hintergrund-Formatierung aber statt der Symbole (Kreise mit 3 Farben) erscheint einfach nur mein Text.
Wenn ich die Formatierungen dagegen manuell eingebe, erscheinen auch die Kreise mit den Farben (grün, gelb, rot) korrekt.
Kann mir jemand sagen, wo hier der Fehler liegt ?
Sub FormatChange()
Dim rg As Range
Set rg = Worksheets(7).Range("F9:F1007")
Worksheets(7).Unprotect "XXX"
rg.FormatConditions.Delete
rg.FormatConditions.Add Type:=xlExpression, Formula1:="=MOD(SUBTOTAL(3,$C$9:$C9),2)"
rg.FormatConditions(rg.FormatConditions.Count).SetFirstPriority
With rg.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent5
.TintAndShade = 0.599963377788629
End With
rg.FormatConditions(1).StopIfTrue = False
rg.FormatConditions.AddIconSetCondition
rg.FormatConditions(rg.FormatConditions.Count).SetFirstPriority
With rg.FormatConditions(1)
.ReverseOrder = True
.ShowIconOnly = True
.IconSet = ActiveWorkbook.IconSets(xl3TrafficLights1)
End With
With rg.FormatConditions(1).IconCriteria(2)
.Type = xlConditionValueNumber
.Value = 2
.Operator = 7
End With
With rg.FormatConditions(1).IconCriteria(3)
.Type = xlConditionValueNumber
.Value = 3
.Operator = 7
End With
Worksheets(7).Range("F9:F1007").HorizontalAlignment = xlCenter
Worksheets(7).Range("F9:F1007").Font.Size = 12
Worksheets(7).Protect UserInterfaceOnly:=True, Password:="XXX"
End Sub
VG und vielen vielen Dank im Voraus,
Tim

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

Betreff
Datum
Anwender
Anzeige
AW: Dringend: Fehler in kleinem Code
14.12.2012 09:41:28
Rudi
Hallo,
das Setzen der bed. Formatierung per VBA ist von der akt. Cursorposition abhängig. Wenn die nicht passt (manuell kein Prob, da selektiert wird), kommt nur Mist heraus. Du musst also dafür sorgen, dass zumindest die erste Zelle des Bereichs aktiv ist.
.....
Worksheets(7).Unprotect "XXX"
rg(1).copy
rg(1).Pastespecial xlpasteformats
rg.FormatConditions.Delete
.....

Gruß
Rudi

AW: Dringend: Fehler in kleinem Code
14.12.2012 11:45:22
Tim
Hallo Rudi,
vielen Dank dafür !
Ich habe die zwei Zeilen von Dir eingefügt, allerdings greift die zweite bedingte Formatierung nach wie vor nicht.
Kann es sein, dass ich hier noch etwas anderes ergänzen muss, z.B. die Range ändern oder ein zweites Mal rg.FormatConditions(1).StopIfTrue = False etc. ?
Ich hoffe, Du kannst mir damit weiterhelfen.
VG und vielen Dank nochmal,
Tim

Anzeige
AW: Dringend: Fehler in kleinem Code
14.12.2012 12:50:05
Rudi
Hallo,
überprüf doch einfach mal die Regeln.
Was ist anders bei VBA/ manuell?
Gruß
Rudi

AW: Dringend: Fehler in kleinem Code
14.12.2012 13:02:14
Tim
Hallo Rudi,
habe ich gemacht.
Ich sehe keinen Unterschied zwischen manueller Formatierung mit Aufzeichnung per Makro-Recorder und dem Code hier.
Ich denke, du hattest absolut recht mit Deiner ersten Vermutung, dass es daran liegt, dass die Zellen nicht als aktiv erkannt werden aber leider hilft nicht mal Select hier etwas - es greift immer nur die erste der beiden Formatierungen.
Kann es daran liegen, dass der Code für beide "SetFirstPriority" bzw. "(1)" enthält ?
Ich habe auch versucht, eine davon auf SecondPriority und (2) zu ändern aber dann springt der Debugger an.
VG,
Tim

Anzeige
AW: Dringend: Fehler in kleinem Code
14.12.2012 20:47:13
Tim
...hat sich erledigt - Formatierung mit selbst erstelltem Symbolsatz gelöst...

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige