Home Office-Hilfe.com - Wir lösen Ihr Problem mit Microsoft Excel, Word, Outlook, PowerPoint, Access gratis Forum Impressum

 [Excel 2003] Frage zu VBA u. Pivot
Neues Thema eröffnenNeue Antwort erstellen
Autor Nachricht
Drunkenmasta
Office-Hilfe.com-Neuling
Office-Hilfe.com-Neuling


Anmeldedatum: 28.03.2009
Beiträge: 15

BeitragVerfasst am: 28.01.2010, 19:06 Nach oben

Hallo zusammen,

ist es möglich bei der Pivot über VBA nach einem festen Wert zu selektieren oder muss ich fortlaufend

.PivotItems("XY").Visible = False
.PivotItems("YZ").Visible = False
etc.

runterrattern bis der gewünschte Wert überbleibt? Leichter wäre es, nur einen Wert anzeigen zu lassen und den rest auszuschließen wie beim Autofilter.

Danke schon mal für eventuelle Lösungsvorschläge

Greetz
Benutzer-Profile anzeigenPrivate Nachricht senden
Thomas Ramel
MVP für Microsoft Office Excel
MVP für Microsoft Office Excel


Anmeldedatum: 26.04.2009
Beiträge: 53

BeitragVerfasst am: 29.01.2010, 11:19 Nach oben

Grüezi ....Masta

Das kommt darauf an in welchem Bereich der PT dieses Feld denn liegt.

Wenn Du wirklich nur ein einzelnes Item anzeigen lassen willst, dann verschiebe das Feld in den Seitenbereich der PT. Hier kannst Du sehr einfach immer ein einzelnes Item zur Darstellung anzeigen lassen.

Wenn das Ganze mit VBA gesteuert werden soll, kannst Du den Makro-Recorder zur Aufzeichnung verwenden.


Liegt das Feld im Zeilen- oder Spaltenbereich kommst Du um das 'abklappern' aller Items nicht herum.

_________________
Mit freundlichen Grüssen

Thomas Ramel
- MVP für MS-Excel -
Benutzer-Profile anzeigenPrivate Nachricht sendenMSN Messenger
Drunkenmasta
Office-Hilfe.com-Neuling
Office-Hilfe.com-Neuling


Anmeldedatum: 28.03.2009
Beiträge: 15

BeitragVerfasst am: 29.01.2010, 22:00 Nach oben

Moin Thomas,

danke schon mal für die Hilfe.

Ich hab mich schon immer gefragt was das Feld da oben so kann...

aber wenn ich da über VBA die Pivot selektieren lasse ergeben sich folgende Probleme:

1. es verschwinden plötzlich items aus der ursprünglichen Tabelle (z. B. ist XY nicht mehr da wenn ich selber was auswählen möchte (auch wenn ich "show all" "programmiere" -> hoffe Du weisst was ich meine

XY ist aber im Datensatz vorhanden, über "Aktualisieren" der Pivot aber auch nicht "herstellbar"

2. wenn ich nach Werten selektiere, die nicht im Datensatz sind (das Ganze ist für einen Report der wöchentlich/monatlich variiert) bekomme ich einen Fehler (z. B. im nächsten Monat steht XY nicht zur Auswahl weil nix verkauft)

Greeeeeeeeeeeeetz
Benutzer-Profile anzeigenPrivate Nachricht senden
Thomas Ramel
MVP für Microsoft Office Excel
MVP für Microsoft Office Excel


Anmeldedatum: 26.04.2009
Beiträge: 53

BeitragVerfasst am: 30.01.2010, 06:27 Nach oben

Grüezi ...Masta

Drunkenmasta hat Folgendes geschrieben:

aber wenn ich da über VBA die Pivot selektieren lasse ergeben sich folgende Probleme:

1. es verschwinden plötzlich items aus der ursprünglichen Tabelle (z. B. ist XY nicht mehr da wenn ich selber was auswählen möchte (auch wenn ich "show all" "programmiere" -> hoffe Du weisst was ich meine


Nein, nicht wirklich - Du hast vermutlich nicht im Seiten- sondern im Datenfeld 'rumgemacht'.
Diese zwei Bereiche kannst du aber absolut nicht miteinander vergleichen - das eine ist ein Kriterinefeld (da kannst Du festlegen welche Kriterien bei der Auswertung berücksichtigt werden sollen), das andere ist die Auswertung/Berechnung selbt (da kannst Du festlegen welche Elemente berechnet werden).

Drunkenmasta hat Folgendes geschrieben:

XY ist aber im Datensatz vorhanden, über "Aktualisieren" der Pivot aber auch nicht "herstellbar"


Auch das weist darauf hin, dass Du dich im Datenfeld und nicht im Seitenfeld bewegt hast.

[/quote]2. wenn ich nach Werten selektiere, die nicht im Datensatz sind (das Ganze ist für einen Report der wöchentlich/monatlich variiert) bekomme ich einen Fehler (z. B. im nächsten Monat steht XY nicht zur Auswahl weil nix verkauft)[/quote]

Ja, das ist logisch - Du kannst nicht selektieren, was nicht vorhanden ist.
Soelche Fehler musst Du halt entweder abfangen oder (besser) gar nicht erst aufkommen lassen indem du vor dem Auswählen eines Items zuerst prüfst, ob dieses denn in dem entsprechenden Pivot-Field auch vorhanden ist (über eine Schleife eben, die alle Items zuerst prüft).


Aber eigentlich machen wir hier Trockenschwimmen - ich kann dir keine konkreten Hinweise geben, wenn ich dein Vorhaben, die PT und deinen verwendeten VBA-Code nicht kenne.....
Dazu kommt, dass z.B. in xl2007 einige Features zur PT hinzugekommen sind, also ist auch die Excel-Version, mit der Du arbeiten willst, wichtig.

_________________
Mit freundlichen Grüssen

Thomas Ramel
- MVP für MS-Excel -
Benutzer-Profile anzeigenPrivate Nachricht sendenMSN Messenger
Drunkenmasta
Office-Hilfe.com-Neuling
Office-Hilfe.com-Neuling


Anmeldedatum: 28.03.2009
Beiträge: 15

BeitragVerfasst am: 30.01.2010, 09:54 Nach oben

Moin,

ich nutze Excel 2003 wie in der Überschrift. Die Felder sind aber tatsächlich im Seitenbereich. Wenn ich dort einen bestimmten Wert auswähle und dann wieder Alle wähle, verschwindet die Hälfte die vorher noch zur Auswahl stand. Der Code sieht zur Zeit so aus:

Sheets("Pivot").Select
ActiveSheet.PivotTables("PivotTable1").PivotFields("Type").CurrentPage = _
"ABC"
Range("D1").Select
Selection.Copy
Sheets("Splittet").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("B9").Select
Sheets("Pivot").Select
ActiveSheet.PivotTables("PivotTable1").PivotFields("Type").CurrentPage = _
"(Alle)"

Jetzt müsste da ja erstmal die Abfrage/Schleife vorgebastelt werden.
Wie baue ich denn so eine Schleife? Ich hatte da schon mehrere Vorschläge aus dem I-Net die nicht wirklich funktionert haben.

Danke nochmal

[/code]
Benutzer-Profile anzeigenPrivate Nachricht senden
Thomas Ramel
MVP für Microsoft Office Excel
MVP für Microsoft Office Excel


Anmeldedatum: 26.04.2009
Beiträge: 53

BeitragVerfasst am: 30.01.2010, 10:07 Nach oben

Grüezi ...Masta

Der Titel wird leider nur ganz oben gezeigt, ab dem zweiten, dritten Beitrag scrollt er anch oben aus dem Bildschrm - also xl2003.

Was Du beschreibst liegt dann wohl daran, dass das alte Einträge sind, die nicht mehr in der Datenquelle zur Verfügung stehen, aber im DropDown noch aufgeführt werden.
Lass mal die folgenden Zeilen laufen, dann ist dieser Punkt im Moment bereinigt:

Code:
Sub DeleteOldPivotItemsWB()
'löschen von nicht mehr verwendeten Einträgen in Pivot-Tabellen
'basierend auf MSKB (Q202232)
Dim wS                        As Worksheet
Dim pt                        As PivotTable
Dim pf                        As PivotField
Dim pi                        As PivotItem

    If Application.Version < 10 Then
        'Für alle älteren Excel-Versionen
        For Each wS In ActiveWorkbook.Worksheets
            For Each pt In wS.PivotTables
                pt.RefreshTable
                pt.ManualUpdate = True
                For Each pf In pt.PivotFields
                    For Each pi In pf.PivotItems
                        If pi.RecordCount = 0 And _
                           Not pi.IsCalculated Then
                            pi.Delete
                        End If
                    Next
                Next
                pt.ManualUpdate = False
            Next
        Next
    Else
        'Als Alternative ab xl2002
        For Each wS In ActiveWorkbook.Worksheets
            For Each pt In wS.PivotTables
                pt.ManualUpdate = True
                pt.PivotCache.MissingItemsLimit = xlMissingItemsNone
                pt.RefreshTable
                pt.ManualUpdate = False
            Next pt
        Next wS
    End If
End Sub



Die einzelnen Items solltest Du so durchlaufen können:

Code:
Dim pt                        As PivotTable
Dim pf                        As PivotField
Dim pi                        As PivotItem

            For Each pt In ActiveSheet.PivotTables
                pt.RefreshTable
                pt.ManualUpdate = True
                For Each pf In pt.PivotFields
                    For Each pi In pf.PivotItems
                          MsgBox Pi.Name
                    Next
                Next
                pt.ManualUpdate = False
            Next
        Next

_________________
Mit freundlichen Grüssen

Thomas Ramel
- MVP für MS-Excel -
Benutzer-Profile anzeigenPrivate Nachricht sendenMSN Messenger
Drunkenmasta
Office-Hilfe.com-Neuling
Office-Hilfe.com-Neuling


Anmeldedatum: 28.03.2009
Beiträge: 15

BeitragVerfasst am: 30.01.2010, 12:01 Nach oben

aja, danke schonmal. Durch den 2. Code steige ich leider nicht so durch, hab mir das mit VBA selber beigebogen deswegen bin ich da nur Anfänger.

Kopiere ich den Code vor die bestehenden oder muss ich die Alten ersetzen und diesen an die "Bedürfnisse" anpassen?

Greetzi
Benutzer-Profile anzeigenPrivate Nachricht senden
Thomas Ramel
MVP für Microsoft Office Excel
MVP für Microsoft Office Excel


Anmeldedatum: 26.04.2009
Beiträge: 53

BeitragVerfasst am: 30.01.2010, 14:56 Nach oben

Grüezi ...Masta

Na, dann hast Du dir einen etwas grossen Brocken vorgenommen, fürchte ich mal....

Die Zeilen sind als Beispiel gedacht - erstelle eine eigene Sub damit und versuche die Zeilen zu verstehen.

Fertig angerichtete Dinge wirst Du hier wohl kaum finden - Hilfe zur Selbsthilfe ist das Moto der Foren.

_________________
Mit freundlichen Grüssen

Thomas Ramel
- MVP für MS-Excel -
Benutzer-Profile anzeigenPrivate Nachricht sendenMSN Messenger
Drunkenmasta
Office-Hilfe.com-Neuling
Office-Hilfe.com-Neuling


Anmeldedatum: 28.03.2009
Beiträge: 15

BeitragVerfasst am: 31.01.2010, 19:09 Nach oben

So ich habe jetzt diverse Wege probiert und das Thema so halbwegs verstanden aber einfach nicht hinbekommen, wie ich

1. prüfe ob XYZ im PivotFeld (ABC) vorhanden ist
1.1 wenn ja dann tu dies (Copy etc.)
1.2 wenn nicht dann gehe zum nächsten "Vergleich"

bis zum Ende durch.

Die Copy-Geschichten usw. sind ja überhaupt kein Problem nur diese Schleife... habe mind. 10-20 Wege probiert aber nichts hat gefunzt.
Benutzer-Profile anzeigenPrivate Nachricht senden
Thomas Ramel
MVP für Microsoft Office Excel
MVP für Microsoft Office Excel


Anmeldedatum: 26.04.2009
Beiträge: 53

BeitragVerfasst am: 31.01.2010, 20:41 Nach oben

Grüezi Masta

Hmmm, ich glaube so kommen wir hier nicht viel weiter.

Kannst Du bitte eine Demo-Mappe auf einen WebSpace hochladen und dann den Link hier nennen?

Beschreibe dann bitte auch genau was Du wie haben oder prüfen willst, dann können wir uns die Sache am 'lebenden Patienten' ansehen.

_________________
Mit freundlichen Grüssen

Thomas Ramel
- MVP für MS-Excel -
Benutzer-Profile anzeigenPrivate Nachricht sendenMSN Messenger
Drunkenmasta
Office-Hilfe.com-Neuling
Office-Hilfe.com-Neuling


Anmeldedatum: 28.03.2009
Beiträge: 15

BeitragVerfasst am: 01.02.2010, 18:09 Nach oben

hier ist die Datei. Was ich versuche steht im Textfeld.

Greetzi


PS
von der Pivot habe ich einen Screenshot im Sheet Pivot eingefügt, da die Datei zu groß geworden wäre


Beispiel.xls
 Beschreibung:

Download
 Dateiname:  Beispiel.xls
 Dateigröße:  35 KB
 Heruntergeladen:  10 mal

Benutzer-Profile anzeigenPrivate Nachricht senden
Thomas Ramel
MVP für Microsoft Office Excel
MVP für Microsoft Office Excel


Anmeldedatum: 26.04.2009
Beiträge: 53

BeitragVerfasst am: 02.02.2010, 06:37 Nach oben

Grüezi Masta

Hmmm, man kann zwar die Items eines Seitenfeldes durchlaufen und dann die Werte auslesen (das würde ich aber nicht direkt aus der PT machen sondern mit einer Hilfsformel). Das macht der VBA-Code, den ich in die Mappe eingefügt habe zusammen mit der Hilfszelle D1 welche per Funktin dann das Total ausliest.
Der VBA-Code stellt die einzelnen Items nacheinander ein, die Funktion liest den Wert aus und der VBA-Code überträgt dann diesen Wert in deine Liste.

Wenn Du die PT etwas anders gestaltest - das ist die zweite Darstellung der PT unten auf dem Blatt, dann kannst Du alle diese Werte bequem per Formel und ganz ohne VBA auslesen.

Schaus dir mal näher an, ansonsten hast Du ja nun ein schönes Muster für den VBA-Code.


tr_Pivot_auslesen.xls
 Beschreibung:

Download
 Dateiname:  tr_Pivot_auslesen.xls
 Dateigröße:  73.5 KB
 Heruntergeladen:  14 mal


_________________
Mit freundlichen Grüssen

Thomas Ramel
- MVP für MS-Excel -
Benutzer-Profile anzeigenPrivate Nachricht sendenMSN Messenger
Drunkenmasta
Office-Hilfe.com-Neuling
Office-Hilfe.com-Neuling


Anmeldedatum: 28.03.2009
Beiträge: 15

BeitragVerfasst am: 08.02.2010, 21:37 Nach oben

Hi Thomas,

perfekt. Ein büschn frisiert und jetzt läuft alles super. Natürlich steht man dann auch gleich vor dem nächsten Problem...

in einer Spalte im Sheet data müsste ich über VBA Sachen filtern, die Text enthalten (wie beim Autofilter) z. B. enthält *Elefant*, damit er rosa, pink, schwarz etc. gleich einbezieht bzw. ausblendet.

Über eine normal Formel habe ich das schon hinbekommen aber der PC auf der Arbeit schafft nicht.

Kann ich dafür evtl. auch deinen Code aus der xls nehmen und etw. abändern?

Danke nochmal für die super Hilfe weiter oben

Greetz
Benutzer-Profile anzeigenPrivate Nachricht senden
Thomas Ramel
MVP für Microsoft Office Excel
MVP für Microsoft Office Excel


Anmeldedatum: 26.04.2009
Beiträge: 53

BeitragVerfasst am: 10.02.2010, 11:42 Nach oben

Grüezi ...masta

Was soll denn mit diesen gefilterten Daten geschehen?

Ziehe die Spalte ebenfalls in die PT und filtere dort dann die Werte wie gewünscht.


Oder was genau willst Du tun?

_________________
Mit freundlichen Grüssen

Thomas Ramel
- MVP für MS-Excel -
Benutzer-Profile anzeigenPrivate Nachricht sendenMSN Messenger
Drunkenmasta
Office-Hilfe.com-Neuling
Office-Hilfe.com-Neuling


Anmeldedatum: 28.03.2009
Beiträge: 15

BeitragVerfasst am: 10.02.2010, 18:17 Nach oben

Moinsen,

die gefilterten Daten ergeben ebenfalls einen Wert der ausgewiesen wird. Da diese natürlich auch wieder variabel sind, wäre ne Art "enthält/enthält nicht" schon ganz praktisch.

In der Beispieldatei oben wäre das z. B.: filtere alles was "Retour" in Verkaufsart enthält also Warengruppe A, B etc.

Der Autofilter schafft das bei größerer Datenmenge leider nicht und Formeln zwingen den PC in die Knie.

Greetzi
Benutzer-Profile anzeigenPrivate Nachricht senden
Beiträge der letzten Zeit anzeigen:      
Neues Thema eröffnenNeue Antwort erstellen


Ähnliche Beiträge
Thema Autor Forum Antworten Verfasst am
Keine neuen Beiträge Pivot Hilfe sCORE Microsoft Excel Hilfe 9 14.03.2010, 20:32 Letzten Beitrag anzeigen
Keine neuen Beiträge NEWBI Frage phaser001 Microsoft Excel Hilfe 3 22.02.2010, 17:28 Letzten Beitrag anzeigen
Keine neuen Beiträge WENNFEHLER(WVERWEIS) Frage/Problem Forrest Microsoft Excel Hilfe 1 09.02.2010, 20:26 Letzten Beitrag anzeigen
Keine neuen Beiträge Frage zur Formelerstellung JarJar Microsoft Excel Hilfe 1 02.02.2010, 17:29 Letzten Beitrag anzeigen
Keine neuen Beiträge OneNote frage zu Dateien Ranttanplan Sonstiges 0 25.01.2010, 23:56 Letzten Beitrag anzeigen


 Gehe zu:   



Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen

Haftungsausschluss/Disclaimer


SMS kostenlos versenden | Tuning Forum | krankenversicherungsvergleich | Wii Modchip Xbox 360 Konsole


Ranking-Hits



Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme :: Alle Zeiten sind GMT + 1 Stunde
Deutsche Übersetzung von phpBB.de