• 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.

problemen met Worksheet_Change

Status
Niet open voor verdere reacties.

quirijn89

Gebruiker
Lid geworden
11 dec 2008
Berichten
11
Beste mensen,

Ik wil een macro laten starten als een bepaalde cel veranderd. Ik heb inmiddels gehoord dat dit moet met de Worksheet_Change.

Ik heb geprobeerd deze code te maken, echter ben ik niet zo'n kenner dus lukt het niet...

De bedoeling van de macro is alsvolgt:

Blad2 cel B1 is een querycel, als ik hier een artikelnummer in typ gaat ie dat in een access database zoeken. Daaruit komen gegevens die in andere bladen worden gezet. Van die gegevens heb ik draaitabellen gemaakt. Nu wil ik dat als ik in B1 een ander artikelnummer zet dat de draaitabellen gaan vernieuwen.

tot nu toe heb ik dit:
---
Sub Worksheet_Change(ByVal Target As Range)


Dim pt As PivotTable
Dim ws As Worksheet


For Each ws In ActiveWorkbook.Worksheets


For Each pt In ws.PivotTables
pt.RefreshTable
Next pt

Next ws

End If

End Sub

-----

Ik heb deze code niet in module geschreven maar in het blad waar de cel staat die moet veranderen.

Graag hulp!

Alvast bedankt!
 
Onderstaande code wordt alleen uitgevoerd als cel B1 wordt gewijzigd.

Code:
Sub Worksheet_Change(ByVal Target As Range)
Dim pt As PivotTable
Dim ws As Worksheet
    If Target.Address = "$B$1" Then
        For Each ws In ActiveWorkbook.Worksheets
            For Each pt In ws.PivotTables
                pt.RefreshTable
            Next
        Next
    End If
End Sub

Met vriendelijke groet,


Roncancio
 
hey,

Bedankt, hij werkt nu op een klein dingetje na..

De werkvolgorde zou moet zijn:
1. cel veranderen
2. gegevens downloaden uit access
3. draaitabellen vernieuwen

De volgorde is nu 1,3,2....Hoe kan ik dit oplossen?
 
Ik heb niets wezenlijk veranderd anders dan dat gekeken wordt of het cel B1 is, dat gewijzigd wordt.
Ik heb dus niets aan de volgorde veranderd. Je zou dus de If Target.Address = "$B$1" Then met de bijbehorende End If aan je oorspronkelijke code kunnen toevoegen.


Met vriendelijke groet,


Roncancio
 
Laatst bewerkt:
hmm...eerst deed ik het artikelnummer invoeren, haalde excel zelf de externe gegevens op en daarna voerde ik de macro draaitabellen vernieuwen uit.

Ik heb al geprobeerd om de 'wijzigingscel' te veranderen van het artikelnummer dat wordt ingevoerd naar de cellen waar de externe gegevens geplaatst worden. Echter werkt dat alleen als je handmatig een nummer invoert, anders niet...

Is het mogelijk om een soort vertraging of iets dergelijks in te bouwen waardoor eerst de externe gegevens worden opgehaald en dan de draaitabel wordt vernieuwd?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan