Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Pivotcache.Sourcedata | Herbers Excel-Forum


Betrifft: Pivotcache.Sourcedata von: David
Geschrieben am: 11.01.2010 07:43:49

Hallo zusammen,

komischerweise wird mein Beitrag https://www.herber.de/forum/archiv/1124to1128/t1127052.htm weder bei "Offfene Fragen" noch bei "Forum-Liste" angezeigt, k. A. ob das hier an meinem Rechner liegt oder andere Gründe hat.

Ich fände es ganz toll, wenn einer der VBA-Experten sich nochmal das Problem anschauen könnte.

Danke und Gruß

David

  

Betrifft: AW: Pivotcache.Sourcedata von: fcs
Geschrieben am: 11.01.2010 16:09:26

Hallo David,

nach ein paar Tagen wandern alle älteren Beiträge ins Archiv, deswegen ist dein Beitrag "verschwunden".

zu deinem Problem:

Wenn die Quelldatei der Pivottabelle geöffnet ist, dann darf in der Pivot-Quelle kein Pfad mit angegeben werden.
Zusätzlich sollte sichergestellt sein, dass Quelldatei und Datei mit Pivottabellen geöffnet sind.

Gruß
Franz

Sub Pivot_Quelle()

  Dim i As Byte, Zeilen As Double, Spalten As Double
  Dim wbSource As Workbook, wks As Worksheet, oPVCache As PivotCache
  Dim sDateiSource As String, sSheetSource As String, sDateiPivot As String
  sDateiSource = "Materialabweichung komplett.xls"
  sSheetSource = "SAPBW_DOWNLOAD"
  sDateiPivot = "Verluste.xls"
  If checkWorkbook(sWorkbookName:=sDateiPivot) = True Then
    If checkWorkbook(sWorkbookName:=sDateiSource) = True Then
      Set wbSource = Workbooks(sDateiSource)
      Set wks = wbSource.Worksheets(sSheetSource)
      Zeilen = wks.UsedRange.Rows.Count
      Spalten = wks.UsedRange.Columns.Count
      With Workbooks(sDateiPivot)
        For i = 1 To .PivotCaches().Count
          Set oPVCache = .PivotCaches(i)
          With wks
            oPVCache.SourceData = "'[" & wbSource.Name & "]" & .Name & "'!" _
              & .Range(.Cells(1, 1), .Cells(Zeilen, Spalten)).Address(ReferenceStyle:=xlR1C1)
          End With
        Next
      End With
    Else
      MsgBox "Bitte vorm Makro-Start Datei """ & sDateiSource & """ öffnen!", _
        vbInformation + vbOKOnly, "Aktualisierung Pivot-Sorce-Data"
    End If
  Else
    MsgBox "Bitte vorm Makro-Start Datei """ & sDateiPivot & """ öffnen!", _
      vbInformation + vbOKOnly, "Aktualisierung Pivot-Source-Data"
  End If
  Set wbSource = Nothing: Set wks = Nothing: Set oPVCache = Nothing
End Sub

Function checkWorkbook(sWorkbookName As String)
  'Prüft ob workbook geöffnet ist
  Dim wb As Workbook
  For Each wb In Workbooks
    If LCase(wb.Name) = LCase(sWorkbookName) Then checkWorkbook = True
  Next
End Function



  

Betrifft: AW: Pivotcache.Sourcedata von: David
Geschrieben am: 12.01.2010 07:20:09

Hallo fcs,

das mit dem Archiv war mir bekannt, ich wußte nur nicht, dass dies so schnell passiert, denn der Beitrag war gerade einmal 5 Tage alt.
Deinen Code muß ich noch ausgiebig testen. Dass die Pivotdatei geöffnet ist, ist logisch, da der Code in DIESER Datei steht. Die Prüfung auf die Quelldatei ist m. E. auch nicht unbedingt notwendig, da in einem vorherigen Makro die Datei mit geöffnet wird. Aber man weiß ja nie, und ich werde deinen Hinweis und deine Hilfe trotzdem überdenken.
Auf jeden Fall wäre ich auf diese Ursache nie gekommen, zumal bei der Ausgabe des aktuellen Pivotcaches per MsgBox ja der Pfad auch mit angezeigt wird!
Nun ja, VBA hat halt seine Tücken.

Danke und Gruß, falls ich's innerhalb der "Archivierungsfrist" schaffe, zu testen, schreibe ich nochmal ein Feedback.

David