PivotItems(x).Visible = True ?

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox


Excel-Version: 9.0 (Office 2000)
nach unten

Betrifft: PivotItems(x).Visible = True ?
von: Felix Eufe
Geschrieben am: 26.06.2002 - 13:36:06

Hallo,

in einer Schleife vergleiche ich die Items eines Pivot-Feldes mit einer Konstanten. Wenn sie kleiner (es handelt sich um Datums (?) im JJJJMMTT - Format als String) sind, sollen sie eingeblendet werden, wenn nicht dann ausgeblendet.
Leider kommt die Fehlermeldung 1004: Die Visible-Eigenschaft des PivotItems-Objektes kann nicht festgelegt werden.
Wenn ich dann mal True und False tausche, funktioniert es kurz, steht dann aber doch wieder (erst bei x=1, dann bei x=89). In dem aktuellen Markierungszustand kann ich leider keine dementsprechende Musterung finden.

Hier mein Code:

Worksheets("Pivot").Select
Range("A1").Select
With ActiveSheet.PivotTables("PivotTable1").PivotFields("Start")
c = .PivotItems.Count
For x = 1 To .PivotItems.Count
If .PivotItems(x).Name < heute_pivot Then 'heute_pivot: Vergleichdatum in JJJJMMTT wie Items in String
.PivotItems(x).Visible = True
Else
.PivotItems(x).Visible = False
End If
Next x
End With


Vielen Dank erstmal,

Felix

nach oben   nach unten

Re: PivotItems(x).Visible = True ?
von: Otto
Geschrieben am: 27.06.2002 - 11:04:33

Hallo Felix,

hast Du bedacht, dass mindestens ein Feld der Pivottabelle immer sichtbar sein muss?
Im folgenden Beispiel, das ich von Dir leicht abgewandelt habe, erscheint der Fehler immer dann, wenn das letzte Item verborgen werden soll.

Sub PivotVisibleSetzen()  
   Dim intCounter As Integer    
   Dim wksPivot As Worksheet  
   
   Set wksPivot = ThisWorkbook.Worksheets("Pivot4")
   With wksPivot.PivotTables("PivotZeit").PivotFields("Start")
      intCounter = .PivotItems.Count
      For intCounter = 1 To .PivotItems.Count  
         MsgBox ".PivotItems(" & intCounter & ").Name: " & _
          .PivotItems(intCounter).Name
         If .PivotItems(intCounter).Name < "Z" Then  
            .PivotItems(intCounter).Visible = True
            MsgBox "True setzen hat geklappt"
         Else
            .PivotItems(intCounter).Visible = False
            MsgBox "False setzen hat geklappt"
         End If  
      Next intCounter
   End With  
End Sub  

Gruß Otto

nach oben   nach unten

Re: PivotItems(x).Visible = True ?
von: Felix
Geschrieben am: 27.06.2002 - 12:32:30

Hallo Otto,

vielen Dank für Deine Antwort. Leider funktionoiert es auch nicht mit Deinem Code, auch nicht, wenn ich sicher stelle, daß nicht alle Items ausgeblendet werden.

Wenn ich z.B. per Hand alle Items demarkiere und das Makro laufen lasse, hängt es schon beim ersten Item (intCounter=1), daß er versucht auf TRUE zu setzten.

Irgendeine Idee?

Vielen Dank, Felix


nach oben   nach unten

Re: PivotItems(x).Visible = True ?
von: Otto
Geschrieben am: 27.06.2002 - 12:36:41

Hallo Felix,

wenn Du ein paar konkrete Beispieldaten zeigen könntest, wär es möglich weiterzuarbeiten.

Gruß Otto


nach oben   nach unten

Re: PivotItems(x).Visible = True ?
von: Felix
Geschrieben am: 27.06.2002 - 12:48:39

Hallo Otto,

vielen Dank für Deine Antwort. Leider funktionoiert es auch nicht mit Deinem Code, auch nicht, wenn ich sicher stelle, daß nicht alle Items ausgeblendet werden.

Wenn ich z.B. per Hand alle Items demarkiere und das Makro laufen lasse, hängt es schon beim ersten Item (intCounter=1), daß er versucht auf TRUE zu setzten.

Irgendeine Idee?

Vielen Dank, Felix


nach oben   nach unten

Re: PivotItems(x).Visible = True ?
von: Felix
Geschrieben am: 27.06.2002 - 13:19:30

Hallo Otto,

ich hab jetzt einfach eine neue Pivottabelle erstellt, mit der funktioniert alles. Ich habe versucht, einen Unterschied in allen Möglichen Einstellungen zwischen den beiden Tabellen zu finden, fand aber nichts....

Trotzdem noch mal vielen Dank,
Felix


 nach oben

Beiträge aus den Excel-Beispielen zum Thema "Das Ergebnis eines Filter in eine Listbox ..."