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

Tijdens uitvoering van code bericht weergeven

Status
Niet open voor verdere reacties.

HarryBee

Gebruiker
Lid geworden
8 jul 2008
Berichten
240
Beste experts,

Ik wil graag hetvolgende realiseren:

Als ik een excelbestand open, dan wordt een code uitgevoerd die gegevens uit een extern bestand ophaalt en deze in het te openen bestand op blad 2 plakt. Dit werkt allemaal goed. Alleen wordt dit kunstje op meerdere plaatsen in het netwerk uitgevoerd.

Als ik het bestand open dan laat ik de macro's rustig hun gang gaan totdat deze klaar zijn. Maar andere mensen hebben de neiging om het te onderbreken of te denken dat er iets fout gaat omdat er steeds andere schermen worden geopend en gesloten waardoor een flikkerend beeld ontstaat. Wat ik nu wil is dat er tijdens het uitvoeren van de code er alleen een scherm zichtbaar is met bijvoorbeeld de tekst "Het bestand wordt geopend, een moment geduld AUB" o.i.d. en dat deze dan op de voorgrond in beeld blijft waardoor het wisselen van schermen etc. wordt verborgen.

Is dit op een of andere manier te realiseren?

Alvast mijn dank.

Groeten Harry
 
Zoiets is te simpel vermoed ik?

Code:
Private Sub workbook_open()

MsgBox ("Het word geinitialiseerd een moment geduld aub")

End Sub

Groetjes
 
@Bram: de code gaat dan pas 'lopen' als je in de MsgBox op 'OK' hebt gedrukt, ik vrees dat gebruikers dan zullen denken dat 'ie 'klaar' is, terwijl ie nog maar net is begonnen...

Wat - denk ik - het makkelijkst is: een werkblad aan het bestand toevoegen dat als 'openings-scherm' fungeert, waarop dus de boodschap "Haastige spoed... etc." staat.

Dat werkblad kan dan geselecteerd worden bij aanvang van de code, en na afloop van de code kun je een ander werkblad selecteren, zodat de gebruiker weet dat het programma 'klaar' is.

Als de code er voor zorgt dat er telkens andere bestanden en/of werkbladen geselecteerd worden (en dus in beeld komen) wordt dit lastig, maar dat zou je op kunnen lossen met een Application.ScreenUpdating=False (en op het einde weer op True zetten ;-)

Wat je ook kan doen is alle code in een UserForm stoppen dat automatisch opgeroepen wordt als je bestand geopend wordt. Aan het eind van de code kan het UserForm uit het geheugen geladen worden, is het voor de gebruiker ook duidelijk.

Kun je hier wat mee?

Groenten, Marcel
 
Laatst bewerkt:
@marcel, je hebt gelijk. Ik dacht dat wanneer je 2 Private sub's zou zetten in this_workbook dat ze dan gelijktijdig zouden lopen maar dat is niet het geval.

Edit: Als je niet heel eigenwijze gebruikers hebt kun je wel zoiets doen:
Aan het begin van je code:
Een msgbox met: "Het bestand word geopend, aub niks doen tot u een bericht krijgt dat u het bestand kunt gebruiken.
En aan het eind:
Msxbox: "Het bestand is geopend, dank u voor uw geduld. U kunt het bestand nu gebruiken."
 
Laatst bewerkt:
Daarvoor hebben we andere hulpmiddelen:

Code:
createobject("Wscript.shell").popup "Wacht tot dit bericht is verdwenen",5
5 is het aantal seconden dat het scherm getoond wordt.
De code begint niet pas te lopen als de gebruiker op een knop heeft geklikt.
 
Helpers, :thumb:

Het is weer een stapje dichterbij. Inderdaad kan ik een box laten verschijnen. Het enige waar ik nu nog mee zit, is dat het wisselen van de schermen nog steeds zichtbaar in beeld zijn waardoor nog steeds een illusie ontstaat dat er iets mis is.

Even voor jullie beeldvorming: Als het bestand wordt geopend, wordt er een tweede document geopend, een range geselecteerd vervolgens gekopieerd, het oorspronkelijke blad geopend, de data wordt geplakt, het tweede document wordt opgeslagen en gesloten.

Omdat de hoeveelheid data zich bevindt in de range B3:DL5002 is de looptijd van de code best wel lang. Het zou dus mooi zijn als er tijdens dit proces alleen een bijv. blauw scherm zichtbaar is met het betreffende MSGbox.

Misschien iemand een idee?

Alvast mijn dank.

Groeten Harry
 
Volgens mij is mijn suggestie jou ontgaan.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan