Herbers Excel-Forum - das Archiv

Bedingte Formatierung in Pivot_NICHT in SubTotals?

Bild

Betrifft: Bedingte Formatierung in Pivot_NICHT in SubTotals?
von: Andreas Hanisch

Geschrieben am: 05.06.2008 19:25:38

Hallo Herber Fans,
ich habe heute einen Code für die bedingte Formatierung in Pivottabellen weitestgehend abgeschlossen und getestet. Den habe ich nicht allein hinbekommen, sondern Franz und Renee haben tatkräftig unterstützt. Was mir nun aufgefallen ist: Die bedingte Formatierung erstreckt sich bei diesem Code auch auf die Subtotals der Pivotfelder im Datenbereich.
Ich habe nun überlegt, wie noch die Prüfung einzufügen wäre, ob es sich um eine SubTotal Zeile handelt oder nicht und dann dort keine bedingte Formatierung zu setzen.
Wenn das von der Laufzeit her zu lange wäre, dann könnte man alternativ auch überlegen, nach dem abgeschlossenen Makro für die bedingte Formatierung ein Makro durchlaufen zu lassen, welches in den SubTotals Zeilen dann wiederum die Formatconditions mit .delete wieder raus nimmt. Aber das erscheint mir nicht optimal, erst rein, dann raus?!
Hat jemand eine Idee für den ersten Ansatz?
https://www.herber.de/bbs/user/52862.xls
Vielen Dank für Eure Ideen und Anregungen.
Grüße, Andreas

Bild

Betrifft: AW: Bedingte Formatierung in Pivot_NICHT in SubTot
von: fcs

Geschrieben am: 06.06.2008 12:58:23
Hallo Andreas,
die Grundlösung (siehe mein Vorschlag von gestern) ist wie so oft schnell gefunden.
Aber bis in einer Pivot-Tabelle ein Makro rund läuft muss man so manche Fehlerprüfung einbauen.
Die Subtotals gehören zum Datenbereich des Feldes. Man kann zwar fesstellen ob für ein Feld Subtotals aktiv sind, aber es ist sehr umständlich, vor dem bedingten Formatieren den Datenbereich ggf. anzupassen. Deshalb mein Vorschlag, die Subtotals in einer separaten Routine am Ende abzuarbeiten.
Gruß
Franz

Sub BedingtesFormat_Advanced_2()
'Hier dein vorhandener Code
End If
Call NoFormatConditionSubtotals(objPivotTable:=pvTable)
Application.ScreenUpdating = True
End Sub
Sub NoFormatConditionSubtotals(objPivotTable As PivotTable)
'Zeilenfelder - bedingte Formatierung bei Subtotals entfernen
Dim objPivotFeld As PivotField
Dim Element As Variant, strMsgBox As String
On Error GoTo Fehler
For Each objPivotFeld In objPivotTable.RowFields
'Überprüfung, ob Teilergebnisse für das Feld auf "Keine" eingestellt ist, _
d.h. alle Subtotal-Optionen haben den Wert False
For Each Element In objPivotFeld.Subtotals
If Element = True Then
objPivotTable.PivotSelect "'" & objPivotFeld & "'[All;Total]", xlDataOnly
Selection.FormatConditions.Delete
Exit For
End If
Next
Resumefehler:
Next
Fehler:
If Err.Number <> 0 Then
strMsgBox = strMsgBox & "ggf. steht die Option ""Teilergebnis"" für  Feld: """ _
& objPivotFeld.Name & """ nicht auf ""keine""!" & vbLf _
& "Fehler Nr. " & Err.Number & vbLf & Err.Description
Resume Resumefehler
End If
'1. Zelle der Pivottabelle selektieren
objPivotTable.PivotSelect "", xlOrigin
ActiveCell.Select
If strMsgBox <> "" Then
MsgBox strMsgBox, vbOKOnly, "Pivot Tabelle-bedingte Formatierung"
End If
End Sub


Bild

Betrifft: AW: Bedingte Formatierung in Pivot_NICHT in SubTot
von: Andreas Hanisch

Geschrieben am: 09.06.2008 14:16:40
Hallo Franz,
vielen Dank für Deine Code Lösung. Das mit dem PivotSelect als Weg, um via Selection die FormatOptionen zu löschen ist clever. Direkt ist es ja nicht möglich. Das war mir auch neu. Aber Dein Code läuft gut durch. Es ist übersichtlicher, wenn die SubTotals ausgenommen sind.
So langsam bin ich mit meinen Code Ideen durch. Ich will sie noch konsolidieren und verbessern, so daß die Pivot Tabellen durch dezente VBA Unterstützung noch mächtiger werden.
Vielen Dank Dir für Deine tatkräftige und qualitativ hochwertige Unterstützung.
Grüße aus Berlin,
Andreas Hanisch

 Bild
Excel-Beispiele zum Thema "Bedingte Formatierung in Pivot_NICHT in SubTotals?"
Bedingter Mittelwert Jahreskalender und bedingte Formatierung
Bedingte Übergabe des Focus und Setzen der Schreibmarke im Dialog Bedingte Formatierung auslesen
Über die bedingte Formatierung den Minimalwert markieren Über bedingte Formatierung Hintergrundfarbe bei Zelleingabe ändern
Bedingte Formatierung in Abhängigkeit eines Zellkommentars Markierung von Formeln über bedingte Formatierung
Zeitabhängige Zellmarkierungen über bedingte Formatierung setzen Tabellenvergleich über die bedingte Formatierung