Microsoft Excel

Herbers Excel/VBA-Archiv

Pivot+VBA | Herbers Excel-Forum


Betrifft: Pivot+VBA von: Ryu
Geschrieben am: 27.10.2008 17:39:04

Guten Abend,

ich habe eine Pivot mit Monaten und Artikeln sowie deren Verbrauch pro Monat. Wie kann ich nun per VBA ein bestimmten Wert auslesen. Z.b. Verbrauch Produkt A im Monat B?

Danke in voraus für Anregungen

  

Betrifft: AW: Pivot+VBA von: rofu
Geschrieben am: 27.10.2008 18:00:06

Hi,

wenn du mit einer pivot tabelle umgehen kannst, brauchst du kein vba,

gruß

rofu


  

Betrifft: AW: Pivot+VBA von: Ryu
Geschrieben am: 28.10.2008 11:24:10

Mir geht es darum dass ich ein Bericht aufbaue der per VBA sich die Daten aus der Pivot in einer anderer Datei holt.. Ich muss nur wissen wie das genau funktioniert. Ich kann natürlich auch Monat für Monat, Produkt für Produkt den Verbrauch manuell aus der Pivot rauslesen und einhämmern aber ich möchte dies soweit wie möglich automatisieren.

Es müsste denke ich irgendwie "With ActiveSheet.PivotTables("PivotTable1").PivotFields("Monat") ... " gehen. Kann mir da jemand helfen? :(


  

Betrifft: AW: Pivot+VBA von: Ryu
Geschrieben am: 28.10.2008 18:46:20

Hallo zusammen,

nun ist es mir selbst gelungen das Problem zu lösen. Die Antwort will ich nicht vorenthalten.

Sub Import_finish()

Dim strMonat As String
Dim strJahr As String
Dim letzteZelle As Range
Dim zähler As Integer
Dim wks As Worksheet
Dim wks2 As Worksheet
Dim Zieldatei As String
Dim BoOffen As Boolean
Dim x
Dim Datum As String
Dim pt As PivotTable
Dim ptf As PivotField
Dim pi As PivotItem


Dim AnzahlPivotElements As Integer
Dim arPivotElements() As String


strMonat = DatePart("m", Date, vbMonday, vbFirstFourDays)
strJahr = DatePart("yyyy", Date, vbMonday, vbFirstFourDays)
Zieldatei = "Lagerbestand_gesamt_Finish.xls"

    BoOffen = False
    For Each x In Workbooks
        If x.Name = Zieldatei Then
            BoOffen = True
            Exit For
        End If
    Next
    If BoOffen = False Then _
    Workbooks.Open Filename:="c:\" & Zieldatei
    
Set wks2 = Workbooks(Zieldatei).Sheets("Lagerbestand_Finish")

Set wks = Workbooks("Auswertung 08").Worksheets("Finished")
wks.Activate

Set letzteZelle = wks.Range("A5").End(xlDown)
Set pt = wks2.PivotTables("PivotTable1")
Set ptf = pt.PivotFields("Lens_Typ")
AnzahlPivotElements = ptf.PivotItems.Count


' Daten von aktueller Monat - 6 eintragen

ReDim arPivotElements(0 To 1, 0 To AnzahlPivotElements - 1) As String
For Each pi In ptf.PivotItems
For zähler = 5 To letzteZelle.Row

    If strMonat - 6 < 10 Then
    Datum = strJahr & "0" & strMonat - 6
    Else
    Datum = strJahr & strMonat - 6
    End If

  If pi.Name = wks.Range("A" & zähler).Value Then
  wks.Range("B" & zähler).Value = wks2.PivotTables(1).GetPivotData("Stk_Out", "YYYYMM", Datum, " _
Typ", pi.Name)
  Else

  End If

  Next zähler
  
Next pi

End Sub