Sluiten formulier en tonen spreadsheet

Status
Niet open voor verdere reacties.

asmeets

Gebruiker
Lid geworden
9 feb 2007
Berichten
47
Hallo allemaal,

Ik heb een macro die gegevens uit een database haalt en in een spreadsheet plaatst. Via een tussen tabblad waarin gegevens gegroepeerd worden maak ik grafieken de de gevraagde informatie leveren.

Omdat er soms veel data geplaatst en gehercalculeerd moet worden heb zet ik het automatisch calculeren uit voordat de informatie wordt geplaatst, en daarna zet ik het calculeren weer aan. Werkt allemaal prima, maar......

Als ik op het laatste formulier formulier op OK klik, dat er voor zorgt dat de informatie wordt opgehaald en geplaatst in de spreadsheet, zou normaal gesproken het formulier moeten verdwijnen (unload me), en de spreadsheet ( een ander dan waar de macro in draait) zou naar voren moeten komen. Je kunt dan zien dat het calculeren bezig is.

Wat er echter gebeurd is dat het formulier zichtbaar blijft, en dat de zandloper blijft lopen totdat alles gereed is. Daarna verschijnt pas de gewenste spreadsheet.

Is er een mogelijkheid om dit voor elkaar te krijgen?

Ad
 
Met de instructie "application.repaint" zou het goed moeten gaan.
 
post je code eens lijkt er op dat je de volgorde niet goed hebt.

Ik denk dat het nu zoiets is;
Application.Calculation = xlCalculationAutomatic
Unload UserForm1

het zou zo kunnen zijn
UserForm1.Hide
Application.Calculation = xlCalculationAutomatic
Unload UserForm1

je kan ook de berekening laten uitvoeren na het op / aanroepen van je formulier
voorbeeld
UserForm1.Show
Application.Calculation = xlCalculationAutomatic

gr eric cirkel
 
De code is inmiddels wat groot geworden

Hallo eric,

De code is wat te groot geworden om te posten, maar ik herken de door jou gebruikte code.

Wat er exact gebeurd is het volgende:

Stap 1:
Ik open een formulier waarin gebruikers een uit te voeren query kunnen selecteren en aan kunnen geven of ze gebruik willen maken van een voorgedefinieerd excel template.

Stap 2:
Na het het selecetren van OK, wordt eerst het formulier gesloten (unload me) de database benaderd en wordt de query uitgevoerd.

Stap 3:
Het gelecteerde template wordt geopend, of een leeg workbook wordt aangemaakt. vervolgens wordt voor alle worksheets autocalculate uitgezet. Vervolgens wordt de output van de query op een worksheet geplaatst. Nadat alle informatie geplaatst is wordt voor alle worksheets autocalculate weer aangezet.

Lijkt mij alles bij alles een goede volgorde. Het probleem is dat het formulier pas verdwijnt als alle handelingen na de unload me uit dit lange verhaal zijn uitgevoerd.
 
De volgorde is ook niks mis mee. De suggestie die ik deed was ook niet een "lucky guess" maar een oplossing die bij mij werkt. Heb zelf namelijk hetzelfde probleem al eens gehad............. :confused:
 
Staat er ergens een Application.screenupdate = false of zo iets er moet iets in staan wat je scherm vast houdt. tenminste als je code wel doorloopt als de Query uitgevoerd word in de userform of van uit de userform zal het beeld blijven "hangen", laat je die Query na het sluiten van de Userform uitvoeren dan zou je de opbouw van je macro gewoon moeten zien. maar het is erg moeilijk voor mij te bepalen waarom als je niet de code zelf ziet, het is net als in het donker spellingcontrole doen ... :-)

Gr eric

Bedenk mij ineens, de database wordt die opgeroepen vanuit het formulier?
 
Laatst bewerkt:
Wellicht is dit een duwtje de goede kant op

Sorry voor de late reactie, ik heb waarschijnlijk over de mail heen gelezen. Er zit inderdaad een Application.screenupdate = false in een van de schermen. Ik ga eens wat proberen

Ik gebruik de schermen alleen voor interactie met de gebruikers. Database toegang, query uitvoeren enzvoorts gebeurt allemaal vanuit de hoofdmodule. Dit allemaal nadat de formulieren zijn gesloten
 
Problem solved

De screen update zorgde voor het niet sluiten van het scherm.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan