Avatar billede tarzan30 Nybegynder
02. juli 2009 - 22:26 Der er 12 kommentarer og
1 løsning

brugerform standser min macro

Hej,

jeg har en makro til at opdatere nogle data i excel. Mens denne macro koerer ville jeg gerne have en brugerform til at sige noget i retning af "vent mens data opdateres"... men ved at saette en brugerform ind foerst i makroen, kommer denne ikke videre.

Hvordan kan jeg vise brugerformen og samtidigt sikre mig at data bliver updateret i baggrunden?

Mvh T
Avatar billede supertekst Ekspert
02. juli 2009 - 23:07 #1
Evt. alternativ:

Application.Statusbar = "Vent mens data opdateres"

Skrives til venstre i statusbaren...
Avatar billede tarzan30 Nybegynder
03. juli 2009 - 15:22 #2
ok, det er selvfoelgelig ogsaa en mulighed...

Men er der en loesning paa at vise brugerformen uden at denne standser makroen?

Og nu vi er ved brugerforme; kan man deaktivere/fjerne det lille kryds oppe i hoejre hjoerne.
Avatar billede supertekst Ekspert
03. juli 2009 - 16:00 #3
Sub test()
    Load UserForm1
    UserForm1.Show 0
   
    For f = 1 To 99950000
       
    Next f
   
    Unload UserForm1
    MsgBox ("SLUT")
End Sub

Userformen består kun af titellinie, hvori den ønskede meddelelse er anført (i Caption for Userformen)

Mener ikke du kan fjerne [x] - men du kan styre forløbet hvis der klikkes herpå:

Private Sub Userform1_Terminate()
...
...

End Sub
Avatar billede kdasummer Nybegynder
06. juli 2009 - 22:58 #4
Jeg ville umiddelbart b ruge UserForm1.Show vbModeless - det er mere læsbart.

Hvis du smider en DoEvents i din for-løkke kan du rent faktisk også lave en progressbar i din userform, fordi DoEvents gør, at programmet ikke fryser, mens din makro kører. neat stuff!

hvis du vil fjerne close-knappen skal du se på windows api'et... læs hvordan du gør her:
http://vbadud.blogspot.com/2007/08/disable-close-button-in-userform-vba.html
Avatar billede tarzan30 Nybegynder
07. juli 2009 - 22:32 #5
hej supertekst,

tak for input til terminate [x], det virker fint.

sender du et svar for den?

mvh T30
Avatar billede tarzan30 Nybegynder
07. juli 2009 - 22:34 #6
Hej kdasummer,

med vbModeless koerer den oprindelige sub i baggrunden hvilket er fint, men brugerformen er ikke andet end blank (hvid) mens den er aktiv?

Progressbar lyder interessant. Har du evt. allerede en tekst her paa siden du kan henvise til?

mvh T30
Avatar billede kdasummer Nybegynder
07. juli 2009 - 22:37 #7
ingen tekst desværre.. har du husket at sætte doevents i din for-løkke?
Avatar billede tarzan30 Nybegynder
07. juli 2009 - 22:52 #8
ahh, ok, troede jeg kunne anvende vbModeless som stand-alone... hvordan kunne saadan en doevent se ud?... er absolut ikke noget til noget avanceret niveau endnu... ;-)

vh T30
Avatar billede kdasummer Nybegynder
07. juli 2009 - 23:12 #9
Public Sub EnSub()
  --- INITIALISER OG VIS DIN USERFORM HER VIA vbModeless ---
  Dim i As Integer
  For i = 0 To 40000
    Debug.Print "Her er noget lige gyldig tekst"
    DoEvents
  Next
End Sub

når du har DoEvents i din for-løkke så låser programmet ikke. så kunne du evt. tilføje en label i din userform der viser hvor mange procent du er nået via følgende kode:

Public Sub EnSub()
  --- INITIALISER OG VIS DIN USERFORM HER VIA vbModeless ---
  Dim i As Integer, intStart As Integer, intEnd as Integer
  intStart = 1
  intEnd = 40000
  For i = intStart To intEnd
    Debug.Print "Her er noget lige gyldig tekst"
    DoEvents
    frmUserForm1.lblProcess.Value = i / intEnd * 100
  Next
End Sub

Så kan folk følge med i hvor lang løkken er kommet.
Avatar billede supertekst Ekspert
07. juli 2009 - 23:27 #10
Selv tak - du får et svar
Avatar billede tarzan30 Nybegynder
11. juli 2009 - 10:51 #11
hej kdasummer,

jeg kan daelme ikke faa det til at fungere. Kan jeg evt. sende dig et setup i excel, og faa dig til at indsaette den do-event?

vh T30
Avatar billede kdasummer Nybegynder
13. juli 2009 - 13:14 #12
der er ikke andet for end at læse noget mere om vba i excel :)
Avatar billede tarzan30 Nybegynder
15. juli 2009 - 08:46 #13
Hej igen.

Nu er det jo desvaerre sjaeldent saadan at lige noejagtigt den loesning man soeger staar beskrevet i laereboegerne. :-(

Det ville sikkert tage dig 30 sec at omrokere/aendre i mit setup. :-)

vh T30
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
Kurser inden for grundlæggende programmering

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