Toon posts:

[VBA] TextBox Value verandert niet

Pagina: 1
Acties:
  • 128 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Heb ook weer iets wat:

In Excel (Office XP) bouw ik een macro.
De macro werkt goed en doorloopt diverse stappen.
Om het voor een gebruiker wat overzichtelijker te maken wil ik in een formpje de status van de macro weergeven. Een soort van tekstuele progress bar...

De code ziet er voor een deel zo uit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Private Sub UserForm_Initialize()
    txtStatus.Value = "Druk op OK om het relatiebestand te genereren."
End Sub

Private Sub cmdStatusOK_Click()

' ---------------------------------------------
' Maak verbinding met de SQL server
' ---------------------------------------------
    txtStatus.Value = "Verbinding maken met SQL server..."
    'Importeer de adressenlijst
    Range("A1").Select
    Selection.QueryTable.Refresh BackgroundQuery:=False

' ---------------------------------------------
' Maak de sheet globaal op
' ---------------------------------------------
    txtStatus.Value = txtStatus.Value + Chr(10) + "Celformaat aanpassen..."
    'Pas celformaat aan voor tekst
    Cells.Select
    Selection.NumberFormat = "@"

...enzovoort...


Het gaat even om de waarde van txtStatus.Value -> deze wordt niet "ge-update" in het form. Pas aan het einde van de macro worden alle values weergegeven.

Ik heb ondertussen echt allerlei help en handleidingen doorgespit, maar deze van origine PHP-gebruiker komt niet uit deze simpele vraag :(

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Je hebt toch niet op een gegeven moment
code:
1
appplication.screenupdating=false

gebruikt?

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Verwijderd

Topicstarter
Nope.

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 22-05 16:53
was het niet txtStatus.Text = "blaat" of is dit in OfficeXP veranderd ?

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • Lister
  • Registratie: September 2001
  • Laatst online: 15-02-2022
Het probeer is waarschijnlijk dat Excel zo druk bezig is me je macro uitvoeren dat het verversen van het scherm uitgesteld wordt totdat je macro klaar is.

Je zou het commando "DoEvents" eens kunnen proberen direct na het vullen van de textbox, deze zorgt ervoor dat alle wachtende Windows commandos verwerkt worden en dan zou het scherm geupdate moeten worden.

DoEvents vertraagt het proces wel even maar als je het een paar keer in een proces uitvoert dan is het bijna niet merkbaar, maar als je het bijvoorbeeld in een loop van 1000 keer zet zal je de vertraging wel merken.

  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 14-05-2024

OZ-Gump

terug van weggeweest

Inderdaad, DoEvents is your friend.
Mocht dit ook nog niet het gewenste effect hebben, zet dan zelf keihard een repaint van je statusscherm in de code, gevolgd door een DoEvents.

My personal website


Verwijderd

Topicstarter
It works! Thanks guys...
Sluiten maar! :)
Pagina: 1