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

Probleem uitvoeren Macro

Status
Niet open voor verdere reacties.

Tikkellll

Gebruiker
Lid geworden
14 nov 2007
Berichten
14
Hallo,

Ik heb een probleem met het uitvoeren van een macro. Als ik de macro stap voor stap uitvoer met F8 gaat alles goed. Als ik de macro vervolgens uitvoer m.b.v. een knop gaat het niet goed.

Hierbij gaat het fout bij het updaten van een query uit Oracle. (Dit gebeurt met de code: ActiveWorkbook.RefreshAll) De gegevens worden wel geupdate, maar bij de volgende stappen waarbij allerlei kolommen gekopieerd worden naar andere werkbladen, worden de oude gegevens nog gebruikt. Dus het lijkt alsof hij deze gegevens opslaat bij de eerste stap die hij uitvoerd.

Ik kan even geen voorbeeld sturen van het script, maar daar zit het probleem volgens mij ook niet in. Het lijkt of het gewoon een "bug" in Excel is, omdat het script met F8 wel goed werkt.

Heeft iemand een verklaring voor dit probleem?
 
Het bijwerken van een externe database kan soms wat tijd kosten; dan loopt de macro eerder door dan de verversing is afgehandeld.
Een mogelijke oplossing is: maak met VBA een cel leeg waarvan je weet dat die altijd vanuit de database gevuld wordt. Maak een lus die kontroleert of de cel leeg is en laat de macro erop wachten dat die gevuld wordt, laat dan de maco verder lopen.

Voorbeeld.
De databasequery is gekoppeld aan cel A1 van blad 'extern'.
cel B1 wordt altijd gevuld vanuit de externe database:

Code:
Sub wacht()
  With sheets("extern").
    .[B1]=""
    .Querytables(1).refresh
    do 
       DoEvents
    Loop until .[B1]<>""
  End with
  '  vervolgcode
End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan