Macro Worksheet_Calculate verbeteren

Status
Niet open voor verdere reacties.

quirijn89

Gebruiker
Lid geworden
11 dec 2008
Berichten
11
beste mensen,

Ik heb onderstaande code. als de macro uitgevoerd wordt nadat er herberekening heeft plaatsgevonden geeft deze foutmelding 1004 tijdens uitvoering:
methode refreshtable van Klasse Pivottable is mislukt.

in het tabblad heb ik slechts 1 draaitabel staan, dus heb het vermoeden dat ie allemaal bezig blijft gaan zonder stop.

Iemand idee??

Code:
Sub Worksheet_Calculate()

Dim pt As PivotTable
Dim ws As Worksheet
    
        For Each ws In ActiveWorkbook.Worksheets
        For Each pt In ws.PivotTables
                pt.RefreshTable
            Next
        Next

    
End Sub
 
Moest ie wel alle werkbladen aflopen (ook die zonder draaitabellen) ?
Terzijde: hou het simpel.

Code:
Sub Worksheet_Calculate()
  For Each pt In activesheet.PivotTables
    pt.RefreshTable
  Next
End Sub
 
hmm helaas werkt het niet:(

als ik het goed begrijp heb ik nu staan:

als er een herberekening plaatsvindt moet de draaitabel herberekend worden waardoor de macro in een cirkel terecht komt.

Zou ik er een stop achter kunnen maken dat de macro slechts 1x wordt uitgevoerd o.i.d.?
 
Hiermee voorkom je cirkels:
Code:
Private Sub Worksheet_[COLOR="Blue"]SelectionChange[/COLOR](ByVal Target As Range)
  For Each pt In PivotTables
    pt.RefreshTable
  Next
End Sub
 
Laatst bewerkt:
Helaas werkt het niet....:(

Waardoor het niet werkt begrijp ik ook, change is toch meer als gegevens worden vernieuwd dan moet er iets uitgevoerd worden.

Mijn bedoeling was om iets te maken van als cel A1 verandert als gevolg van herberekening moet de draaitabel gaan vernieuwen. Bij de functie change staat dat ie niet uitgevoerd wordt als gevolg van herberekening. Maar ik heb gezocht en heb nergens kunnen vinden dat de macro uitgevoerd kan worden als gevolg van een ander getal door herbereking in cel A1.

Als jullie nog tips of ideeen hebben hoor ik het graag.

Groet
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan