Avatar billede max4user Nybegynder
08. september 2003 - 00:15 Der er 10 kommentarer

VBA Print opdater løbende

Hvis jeg vil vise tekst i feks. en textbox, bliver den først synlig for brugeren når macroen løber ud...

Hvordan kan jeg i en længere varende macro printe oplysninger ud til brugeren som feks.

Connecter i batch mode, Vent....
...
...
Done...
Behandler job 01 Vent...
...

Uden brugeren skal aktiver en control eller andet medens han drikker kaffe :)
Avatar billede Slettet bruger
08. september 2003 - 00:18 #1
Prøv med:

-----------------
Application.Statusbar = "Connecter i batch mode, Vent...."

og for at rydde statusbaren:

Application.Statusbar = False
Avatar billede aheiss Praktikant
08. september 2003 - 09:18 #2
Eller hvad med :
..
Application.Statusbar = "Connecter i batch mode, Vent...."
DoEvents
..
Application.Statusbar = "Behandler job 01 Vent..."
DoEvents
..
Avatar billede max4user Nybegynder
08. september 2003 - 21:36 #3
Nope ikke statusbar...Ingen ser dernede i hjørnet, så med mindre
den kan smækkes op midt på skærmen i stor format...

Jeg tænker mere på:

TextBox1.text = "Connecter i batch mode, Vent...."
(den ønskede funktion)
bla. bla.
TextBox1.text = "Behandler job 01 Vent..."
(den ønskede funktion)
bla. bla.

Den ønskede funktion opdater display så teksten kan læses under
behandling af "bla.bla"...:)
Avatar billede aheiss Praktikant
09. september 2003 - 09:34 #4
Så ville jeg indsætte en textbox, med ønsket format/placering med egenskaben
Visible = False. (Dvs. udgangspunkt usynlig)
Derefter kunne koden se ud som følger :
..bla.bla.
Worksheets(1).TextBox1.Visible = True
Worksheets(1).TextBox1.Text = "Connecter i batch mode, Vent...."
...bla.bla.
Worksheets(1).TextBox1.Text = "Behandler job 01 Vent..."
...bla.bla.
Worksheets(1).TextBox1.Visible = False
msgbox("Job afsluttet")
Avatar billede aheiss Praktikant
09. september 2003 - 09:36 #5
Evt. med DoEvents efter hver Text linje, hvis den ikke skulle opdatere
Avatar billede max4user Nybegynder
10. september 2003 - 19:46 #6
Den opdater stadig ikke før macroen er endt.
DoEvents gør vist intet i VBA...
Jeg har også selv tænkt på noget synligt/usynligt men
lige fedt når en form først opdater når koden ikke køre mere.

Nu er jeg jo så gammel så jeg drømmer mig tilbage hvor man
bare skrev:

Print "Program Starter..."
bla. bla.
Input "Tast Noget",a$
bla.bla.
Print "Du skrev ";a$
bla.bla.
Print "Det var nemt i gamle dage"
END

(bla.bla.) gav vist en syntax fejl :)
Avatar billede aheiss Praktikant
10. september 2003 - 20:19 #7
Jeg forstår det ikke helt. Kunne du ikke lægge hele koden ?
Men før det kunne du prøve med userforms. Nok det samme resultat med værd at prøve:
..bla.bla.
load Userform1
(evt. userform1.show men vist ikke nødvendigt)
...bla.bla.
unload userform1
load userform 2
...bla.bla.
Avatar billede Slettet bruger
10. september 2003 - 20:19 #8
Du kunne skrive beskeder i en ubrugt celle.
f.eks:

Sheets(1).[A1] = "Program Starter..."

Det kræver at du har Application.ScreenUpdating = True

eller, (efter min mening den nemmeste)

Fortæl brugeren vha. en Msgbox at han/hun skal holde øje med statusbaren og ellers brug den.

MsgBox "Klik OK for at starte makroen. Statusmeddelelser vises på statusbaren"
Avatar billede max4user Nybegynder
10. september 2003 - 21:30 #9
Jeg kan ikke hele kode, den fylder et ondt år og har ingen relevans.
Bede brugeren om af holde øje ! Det design går ikke på min arbejdsplads :O

Der imod får "Application.ScreenUpdating = True" top karakter det er
nøjaktigt det jeg søger på en form neavue som her:

Private Sub CommandButton2_Click()
Application.ScreenUpdating = True
TextBox1.Text = "Test_start" 'Kan ikke læses
Sheets(1).[A1] = "Test_start" 'Kan godt læses
For i = 1 To 20000000
Next
TextBox1.Text = "Test_middel" 'kan ikke læses
Sheets(1).[A1] = "Test_middel" 'kan godt læses
For i = 1 To 20000000
Next
TextBox1.Text = "Test_slut" 'kan ikke læses
Sheets(1).[A1] = "Test_slut" 'kan godt læses
For i = 1 To 20000000
Next
End Sub

Først nu hvor koden er endt kan textbox læses som "Test_slut" :(

Jeg vil sikkert løses det med et særligt designet sheet og så
bruge ideen "Application.ScreenUpdating = True"
Hvis jeg så kan få det til at poppe op ovenpå min aktive Form....

Takker...
Avatar billede Slettet bruger
10. september 2003 - 21:33 #10
Hvis der ikke er nogen der holder øje, er der så nogen grund til at skrive beskeder ?  :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester