• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

draaitabel VB

Status
Niet open voor verdere reacties.

nobody11

Gebruiker
Lid geworden
20 dec 2007
Berichten
552
hey iedereen,

ik heb via recorder een macro opgenoen die van op een bepaald blad een scenariodraaitabel maakt.. nu het maken van de scenario-draaitabel lukt, maar tijdens het opnemen heb ik ook de opmaak van de draaitabel veranderd..

bij het opnieuw afspelen van die macro is er een probleem wanneer de macro de opmaak wil veranderen.. ik krijg steeds een error mar ik weet welk probleem het is volgens mij..

Code:
Sub Macro5()

       ActiveSheet.Scenarios.CreateSummary ReportType:=xlPivotTable, ResultCells:= _
        Range("B58")
       ActiveSheet.PivotTables("Draaitabel22").Name = "naamdraaitabel"
       With ActiveSheet.PivotTables("naamdraaitabel").PivotFields("$J$35;$B$39")
        .Orientation = xlColumnField
        .Position = 1
    End With
End Sub

het probleem zit hem erin dat bij het opnemen van de macro, de 'toenmalige' draaitabel de naam "draaitabel22" had..maar bij het opnieuw afspelen van de macro is dat ondertussen draaitabel23 etc.. hoe kan ikervoor zorgen dat eender welke draaitabel die gemaakt wordt, de naam "naamdraaitabel" krijgt?

ik hoop dat het voldoende duidelijk is?
bedankt!!
 
ik heb ondertussen deze code gevonden



Code:
sub test()
Dim i As Integer
Dim ws As Worksheet
For Each ws In Worksheets
If ws.PivotTables.Count > 0 Then
For i = 1 To ws.PivotTables.Count
ws.PivotTables(i).Name = "PivotTable" & i 
Next i
End If
Next ws
End Sub

maar als ik dat uitvoer na het creeëren van de pivottable , dan krijg ik nog steeds een runtime error 1004, "unable to set the Name property of the PivottableClass"

weet iemand hoe dit komt?
 
ik heb ondertussen deze code gevonden



Code:
sub test()
Dim i As Integer
Dim ws As Worksheet
For Each ws In Worksheets
If ws.PivotTables.Count > 0 Then
For i = 1 To ws.PivotTables.Count
ws.PivotTables(i).Name = "PivotTable" & i 
Next i
End If
Next ws
End Sub

maar als ik dat uitvoer na het creeëren van de pivottable , dan krijg ik nog steeds een runtime error 1004, "unable to set the Name property of the PivottableClass"

weet iemand hoe dit komt?


edit:

ik heb reeds geprobeerd via recorder om de naam te vearnderen, maar dan blijft het probleemd dat hij de naam van de oorspronkelijke pivottable verandert, en als ik een nieuwe maak,en diezelfde code erop los laat,dan heeft dat betrekking op de vorige pivottable (met de vorige naam).. pff :) hier heb ik mij al suf op gezocht en geprobeerd.. we ambetant :)
 
edit:

ik heb reeds geprobeerd via recorder om de naam te vearnderen, maar dan blijft het probleemd dat hij de naam van de oorspronkelijke pivottable verandert, en als ik een nieuwe maak,en diezelfde code erop los laat,dan heeft dat betrekking op de vorige pivottable (met de vorige naam).. pff :) hier heb ik mij al suf op gezocht en geprobeerd.. we ambetant :)

weet iemand een oplossing voor mijn probleem?
 
Het zal wel aan mij liggen hoor, maar ik vind je vraag echt niet duidelijk. Ik begrijp niet wat de huidige situatie is, en wat je wil bekomen. Kan je wat meer info geven?
 
Het zal wel aan mij liggen hoor, maar ik vind je vraag echt niet duidelijk. Ik begrijp niet wat de huidige situatie is, en wat je wil bekomen. Kan je wat meer info geven?

ik heb met een macro een draaitabel laten creeëren.. tot hier lukt het perfect.. nu wil ik graag dat telkens een nieuwe draaitabel gecreëerd wordt, deze een specifieke naam krijgt.. dit zou ik graag in VB programmeren..
 
Ik herneem een stukje van je eerste code:

Code:
Sub Macro5()

       ActiveSheet.Scenarios.CreateSummary ReportType:=xlPivotTable, ResultCells:= _
        Range("B58")
       ActiveSheet.PivotTables(ActiveSheet.PivotTables.Count).Name = "NaamDieJeWilt"
End Sub

Daar je met Activesheet werkt in je eerste regel dien je altijd eerst de sheet te selecteren waar het scenario staat alvorens je de macro kan uitvoeren.

Scenariomanager maakt altijd een nieuwe sheet aan, dus in de tweede regel kan je werken met activesheet, aangezien de scenariomanager zorgt dat je op de juiste sheet zit.

BTW: De code uit post 2 werkt bij mij zonder problemen.

edit: verdergaand op bovenstaande code kan je die PT ook toewijzen aan een variabele en op die manier de PT makkelijker aanspreken in code. Vb.

Code:
Dim oPT As PivotTable

 ActiveSheet.Scenarios.CreateSummary ReportType:=xlPivotTable, ResultCells:= _
        Range("L1")
Set oPT = ActiveSheet.PivotTables(ActiveSheet.PivotTables.Count)
oPT.Name = "NaamDieJeWil"
End Sub
 
Laatst bewerkt:
Ik herneem een stukje van je eerste code:

Code:
Sub Macro5()

       ActiveSheet.Scenarios.CreateSummary ReportType:=xlPivotTable, ResultCells:= _
        Range("B58")
       ActiveSheet.PivotTables(ActiveSheet.PivotTables.Count).Name = "NaamDieJeWilt"
End Sub

Daar je met Activesheet werkt in je eerste regel dien je altijd eerst de sheet te selecteren waar het scenario staat alvorens je de macro kan uitvoeren.

Scenariomanager maakt altijd een nieuwe sheet aan, dus in de tweede regel kan je werken met activesheet, aangezien de scenariomanager zorgt dat je op de juiste sheet zit.

BTW: De code uit post 2 werkt bij mij zonder problemen.

edit: verdergaand op bovenstaande code kan je die PT ook toewijzen aan een variabele en op die manier de PT makkelijker aanspreken in code. Vb.

Code:
Dim oPT As PivotTable

 ActiveSheet.Scenarios.CreateSummary ReportType:=xlPivotTable, ResultCells:= _
        Range("L1")
Set oPT = ActiveSheet.PivotTables(ActiveSheet.PivotTables.Count)
oPT.Name = "NaamDieJeWil"
End Sub

hoi finch,

eerst en vooral bedankt vr je respons! ik heb momenteel deze code:

Code:
Sub Draaitabel()
'
' Draaitabel Macro
' 
'

'
    ActiveSheet.Scenarios.CreateSummary ReportType:=xlPivotTable, ResultCells:= _
        Range("B58")
    ActiveSheet.PivotTables(ActiveSheet.PivotTables.Count).Name = "NaamDieJeWilt"
End Sub

deze geeft bij mj echter ngo steeds een error .."unable to set the name property of the pivottable class".. wat kan hiervan de oorzaak zijn?
 
Laatst bewerkt door een moderator:
hoi finch,

eerst en vooral bedankt vr je respons! ik heb momenteel deze code:

Code:
Sub Draaitabel()
'
' Draaitabel Macro
' 
'

'
    ActiveSheet.Scenarios.CreateSummary ReportType:=xlPivotTable, ResultCells:= _
        Range("B58")
    ActiveSheet.PivotTables(ActiveSheet.PivotTables.Count).Name = "NaamDieJeWilt"
End Sub

deze geeft bij mj echter ngo steeds een error .."unable to set the name property of the pivottable class".. wat kan hiervan de oorzaak zijn?


Heb je daarvan een voorbeeldbestand?
 
Laatst bewerkt door een moderator:
@Finch,

ik zal straks een voorbeeldje hier posten.. maar moet eerst even de "gevoelige" info eruit halen..
 
Laatst bewerkt:
klopt Wim ;-)

ale, deze vraag is uitzonderlijk van mij.. de vraagsteller is meestal een broer..

@Finch,

ik zal straks een voorbeeldje hier posten.. maar moet eerst even de "gevoelige" info eruit halen..

Ik heb hier een voorbeeldbestandje gemaakt..
via de knop maakt men een draairapport (op basis van scenario's)
nu had ik graag dat bij het maken van het draairapport, ik automatisch een naam kan geven aan de gecreëerde draaitabel .. iemand die hierbij kan helpen?:)
 

Bijlagen

  • example.xls
    23,5 KB · Weergaven: 53
Ik heb hier een voorbeeldbestandje gemaakt..
via de knop maakt men een draairapport (op basis van scenario's)
nu had ik graag dat bij het maken van het draairapport, ik automatisch een naam kan geven aan de gecreëerde draaitabel .. iemand die hierbij kan helpen?:)

Bij Excel 2007 werkt bovenvermelde code zonder problemen, als ik dat echter uitvoer in Excel 2003 werkt het ook niet, en krijg ik ook de Error 1004....
Wanneer ik echter dezelfde code binnen Excel 2003 op een 'normale' draaitabel (dus niet via scenario manager) dan werkt de code ook perfect. Ik kan de DT wel aan de variabele toewijzen, maar de naam veranderen laat Excel niet toe.

Ik moet eerlijk bekennen, dat ik nog nooit een draaitabel op basis van de scenario manager heb gebruikt binnen mijn Excel werk. Ook via google vind ik hierover niet dadelijk relevante links (waarschijnlijk wordt dat ook niet superveel gebruikt door anderen - net als bij mij :). Het ontbreekt me ook aan tijd om dit verder in detail uit te zoeken. Sorry daarvoor. Misschien dat anderen wel een oplossing weten?
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan