Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
976to980
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
976to980
976to980
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
VBA-Code ändern in Makro zu Pivottabelle
16.05.2008 15:15:00
Wolfango
Hallo Experten,
ich habe ein ziemlich langes Makro mit dem Rekorder aufgezeichet (von VBA habe ich leider keine Ahnung)
Mitten im langen VBA Text steht jetzt folgende Zeile:
.PivotItems("RECYCLED FLUTING 1 100 GR").Visible = False
Diese Zeile bewirkt, dass in einer Pivottabelle die Daten zu "RECYCLED FLUTING 1 100 GR" ausgeblendet werden (...das verstehe auch ich).
Meine Frage:
Kann ich diese Zeile so abändern, dass ALLE Daten, welche mit "RECY" beginnen ausgeblendet werden?
Intuitiv würde ich da jetzt folgendes eingeben:
.PivotItems("RECY*").Visible = False
aber das geht mit VBA sicher anders?
Wer weiß Rat?
Gruß,
Wo.

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA-Code ändern in Makro zu Pivottabelle
16.05.2008 16:48:00
fcs
Hallo Wolfango,
in erster Näherung sollte folgendes funktionieren. Die Dehlaration (Dim... fügst du am Anfang deines Codes ein. Hinter der Sub ... Zeile

Dim objPI As PivotItem
For Each objPI In .PivotItems
If Left(objPI.Name, 4) = "RECY" Then
.objPI.Visible = False
End If
Next


Tip: Falls dein aufgezeichneter Code Zeilen mit Scrollbefehlen enthält, dann kannst du die entsprechenden Zeilen alle gefahrlos Löschen.
Gruß
Franz

AW: VBA-Code ändern in Makro zu Pivottabelle
20.05.2008 11:14:00
Wolfango
...Danke...aber es funktioniert einfach nicht....bekomme stets eine Fehlermeldung...

Anzeige
AW: VBA-Code ändern in Makro zu Pivottabelle
20.05.2008 11:26:02
Wolfango
habe mal den kompletten Code (s.u.) untenstehend einkopiert....vermutlich habe ich einen Fehler beim Einstzen des Vorschlages von "fcs"(Franz) gemacht (ich habe die geänderten/hinzugefügten Teile unten fett markiert)....ich hab schon alles mögliche ausprobiert, ich bekomme es einfach nicht hin...
Wer weiß Rat?
Danke!
Gruß,
Wo.
Code:

Sub Auswertung_Teil_02()
Dim objPI As PivotItem
Range("A2").Select
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"Einfügetabelle2!R1C1:R1000C5").CreatePivotTable TableDestination:="", _
TableName:="PivotTable4", DefaultVersion:=xlPivotTableVersion10
ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
ActiveSheet.Cells(3, 1).Select
With ActiveSheet.PivotTables("PivotTable4")
.DisplayErrorString = True
.EnableDrilldown = False
.ErrorString = " "
End With
ActiveSheet.PivotTables("PivotTable4").PivotCache.RefreshOnFileOpen = True
ActiveSheet.PivotTables("PivotTable4").AddFields RowFields:=Array("Product", _
"Daten"), ColumnFields:="Country"
With ActiveSheet.PivotTables("PivotTable4").PivotFields("Quantity")
.Orientation = xlDataField
.Caption = " Quantity"
.Position = 1
.

Function = xlSum
End With
With ActiveSheet.PivotTables("PivotTable4").PivotFields("Value II")
.Orientation = xlDataField
.Caption = " Value II"
.

Function = xlSum
End With
With ActiveSheet.PivotTables("PivotTable4").PivotFields("Product")
.PivotItems("").Visible = False
.PivotItems("").Visible = False
For Each objPI In .PivotItems
If Left(objPI.Name, 4) = "RECY" Then
.objPI.Visible = False
End If
Next
End With
Columns("A:A").EntireColumn.AutoFit
Range("C5").Select
ActiveSheet.PivotTables("PivotTable4").CalculatedFields.Add "Preis", _
"='Value II'/Quantity *1000", True
ActiveSheet.PivotTables("PivotTable4").PivotFields("Preis").Orientation = _
xlDataField
ActiveSheet.PivotTables("PivotTable4").PivotFields("Summe von Preis").Caption _
= " Preis"
ActiveWorkbook.ShowPivotTableFieldList = False
Range("C4:I4").Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Columns("A:J").Select
Columns("A:J").EntireColumn.AutoFit
Range("A2").Select
ActiveCell.FormulaR1C1 = "Lieferung Testliner"
Range("A2:J2").Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Selection.Merge
With Selection.Font
.Name = "Arial"
.Size = 14
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
With Selection.Interior
.ColorIndex = 15
.Pattern = xlSolid
End With
Range("F7").Select
ActiveSheet.PivotTables("PivotTable4").PivotSelect "", xlDataAndLabel, True
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
Range("A2:J2").Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
Selection.Borders(xlInsideVertical).LineStyle = xlNone
ActiveWindow.DisplayGridlines = False
Range("C5").Select
End Sub


Anzeige
AW: VBA-Code ändern in Makro zu Pivottabelle
20.05.2008 16:31:00
fcs
Hallo Wo.,
da hatt sich bei mir ein Punkt zuviel in den Code eingeschlichen :(
Da der Code auch in eine Fehler Läuft wenn in den Daten keine Items mit Leerstring sind, muss hier auch eine entsprechende Prüfung des Namens erfolgen
Hoffe es läuft dann.
Gruß
Franz

With ActiveSheet.PivotTables(1).PivotFields("Product")
For Each objPI In .PivotItems
If objPI.Name = "" Or objPI.Name = "(Leer)" Then
objPI.Visible = False
End If
If Left(objPI.Name, 1) = "RECY" Then
objPI.Visible = False
End If
Next
End With


Anzeige
AW: VBA-Code ändern in Makro zu Pivottabelle
21.05.2008 13:09:04
Wolfango
Es funktioniert!!!
Ich bin begeistert!!!
DANKE!!!!
Anm:
Es muss aber bestimmt heißen:
If Left(objPI.Name, 4) = "RECY" Then
und nicht
If Left(objPI.Name, 1) = "RECY" Then
...oder?

AW: VBA-Code ändern in Makro zu Pivottabelle
21.05.2008 15:06:00
fcs
Hallo Wo.,
die 4 ist natürlich richtig.
Ich hatte mir zum Testen eine andere Tabelle zusammengbastelt. da ist die 1 noch übergeblieben.
Gruß
Franz

AW: VBA-Code ändern in Makro zu Pivottabelle
21.05.2008 15:25:13
Wolfango
...manche Dinge sind dann doch einleuchtend auch wenn man von VBA rein gar nix versteht....im Grunde hab ich jetzt "für mich spanische Dörfer" hin- und herkopiert...aber es funktioniert und löst ein großes Problem!
Danke nochmal.
Gruß,
Wo.
Anzeige

321 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige