DaviddeV1990
Gebruiker
- Lid geworden
- 30 jul 2011
- Berichten
- 61
Beste,
Ik zit al een hele tijd te zoeken naar een goede oplossing voor onderstaand probleem, maar ik kom er nog steeds niet uit. Het lijkt mij dat het echt mogelijk is en dat het niet heel moeilijk is voor iemand met verstand van macro's, maar ik heb de oplossing nog altijd niet gevonden (want ik heb ook niet veel verstand van macro's).
Het probleem is als volgt: Ergens op een server staat een bestand met diverse PivotTables. Deze PivotTables worden om de twee uur vernieuwd waardoor ze nieuwe data bevatten. Voor mijn Excel Dashboard heb ik gegevens nodig uit deze PivotTable. Ik heb er daarom voor gekozen om deze PivotTables te kopieren naar mijn (lokale) bestand. In de lokale versie wil ik vervolgens de PivotTable verkleinen door in het PivotFiel "Winkelafdeling" te kiezen voor (bijvoorbeeld) 'AGF'. Hier gaat het echter mis. Als ik de PivotTables kopieer dan geeft Excel deze zelf een naam omdat ik 2 hele sheets kopieer, waar toevallig twee PivotTables op staan. Eerst heten deze PivotTables "PivotTable1" en "PivotTable2" als ik vervolgens de PivotTables opnieuw inlaad, dan krijgen de nieuwe PivotTables de namen "PivotTable3" en "PivotTable4" en daar 5 en 6 etc. In de volgende macro wordt echter een bepaalde PivotTable aangeroepen, namelijk altijd "PivotTable1" en "PivotTable2". Ik krijg echter een error als ik de PivotTables opnieuw heb gekopieerd omdat "PivotTable1" en "PivotTable2" niet meer bestaan (dit zijn bijvoorbeeld "PivotTable3" en "PivotTable4" geworden). Hoe kan ik er voor zorgen dat in de tweede macro altijd de goede PivotTables worden aangeroepen? Wat moet ik hiervoor wijzigen in macro 1 of macro 2?
De macro's zijn hieronder toegevoegd:
Dit is de macro die de PivotTables moet kopieren:
Dit is de macro die het juiste "PivotField" selecteert:
Wie kan mij helpen om dit probleem op te lossen, want ik kom er echt niet uit.
Alvast enorm bedankt voor degene die mij het verlossende antwoord kan geven!
Ik zit al een hele tijd te zoeken naar een goede oplossing voor onderstaand probleem, maar ik kom er nog steeds niet uit. Het lijkt mij dat het echt mogelijk is en dat het niet heel moeilijk is voor iemand met verstand van macro's, maar ik heb de oplossing nog altijd niet gevonden (want ik heb ook niet veel verstand van macro's).
Het probleem is als volgt: Ergens op een server staat een bestand met diverse PivotTables. Deze PivotTables worden om de twee uur vernieuwd waardoor ze nieuwe data bevatten. Voor mijn Excel Dashboard heb ik gegevens nodig uit deze PivotTable. Ik heb er daarom voor gekozen om deze PivotTables te kopieren naar mijn (lokale) bestand. In de lokale versie wil ik vervolgens de PivotTable verkleinen door in het PivotFiel "Winkelafdeling" te kiezen voor (bijvoorbeeld) 'AGF'. Hier gaat het echter mis. Als ik de PivotTables kopieer dan geeft Excel deze zelf een naam omdat ik 2 hele sheets kopieer, waar toevallig twee PivotTables op staan. Eerst heten deze PivotTables "PivotTable1" en "PivotTable2" als ik vervolgens de PivotTables opnieuw inlaad, dan krijgen de nieuwe PivotTables de namen "PivotTable3" en "PivotTable4" en daar 5 en 6 etc. In de volgende macro wordt echter een bepaalde PivotTable aangeroepen, namelijk altijd "PivotTable1" en "PivotTable2". Ik krijg echter een error als ik de PivotTables opnieuw heb gekopieerd omdat "PivotTable1" en "PivotTable2" niet meer bestaan (dit zijn bijvoorbeeld "PivotTable3" en "PivotTable4" geworden). Hoe kan ik er voor zorgen dat in de tweede macro altijd de goede PivotTables worden aangeroepen? Wat moet ik hiervoor wijzigen in macro 1 of macro 2?
De macro's zijn hieronder toegevoegd:
Dit is de macro die de PivotTables moet kopieren:
Code:
Sub CopyPvts()
Dim ws As Worksheet
Dim wb As Workbook
Dim SheetList
Dim i As Long
SheetList = Array("Sheet1", "Sheet2") ' change to suit - these are the sheet names to copy TO and must exist
Set wb = Workbooks.Open("C:\Users\David\Documents\DraaiTabelGebruikAfprijzing2007.xlsx") ' change to suit
For Each ws In Worksheets(Array("AfprPerFilPerSubgrpPerArtGELD", "AfprPerFilPerSubgrpPerArtCE")) ' change to suit = sheet names to copy FROM
ThisWorkbook.Sheets(SheetList(i)).UsedRange.ClearContents
ws.UsedRange.Copy Destination:=ThisWorkbook.Sheets(SheetList(i)).Range("A1")
i = i + 1
Next ws
wb.Close savechanges:=False
End Sub
Dit is de macro die het juiste "PivotField" selecteert:
Code:
Sub PVTAfdelingKiezen()
'
' PVTAfdelingKiezen Macro
'
Sheets("AfprPerFilPerSubgrpPerArtCE").Select
ActiveSheet.PivotTables("PivotTable1").PivotFields("Winkel afdeling"). _
CurrentPage = Sheets("Admin").Range("B136").Text
Sheets("AfprPerFilPerSubgrpPerArtGELD").Select
ActiveSheet.PivotTables("PivotTabel2").PivotFields("Winkel afdeling"). _
CurrentPage = Sheets("Admin").Range("B136").Text
Sheets("AGF").Select
Range("M32").Select
End Sub
Wie kan mij helpen om dit probleem op te lossen, want ik kom er echt niet uit.
Alvast enorm bedankt voor degene die mij het verlossende antwoord kan geven!