Avatar billede jesper_munk Nybegynder
14. marts 2007 - 11:44 Der er 21 kommentarer og
1 løsning

Loading vindue til macro i excel

jeg har lavet et stort excelark med masser af forskellige macroer, når macroerne kører vises alt det macroen laver meget hurtigt. Jeg synes ikke det ser særligt godt ud og har lyst til at noget andet vises imens macroen kører. Det ville være fedt hvis et loading vindue eller et billede vises istedet.

Er dette muligt???
Avatar billede splokit Nybegynder
14. marts 2007 - 11:48 #1
Er det en du selv har optaget!?
Avatar billede jesper_munk Nybegynder
14. marts 2007 - 11:51 #2
jeg har selv skrevet alle macroerne
Avatar billede splokit Nybegynder
14. marts 2007 - 11:55 #3
Hvorfor laver du så ikke en userform med et eller anden til at blive vist når man trykker på din knap og når koden er færdig gemmer den din userform...
Avatar billede jesper_munk Nybegynder
14. marts 2007 - 13:00 #4
hvis jeg viser en userform kører macroen ikke før jeg lukker userformen
Avatar billede splokit Nybegynder
14. marts 2007 - 13:03 #5
humm så laver du noget forkert...

Sub X()
load.userform
Din kode
unload.userform
end sub
Avatar billede jesper_munk Nybegynder
14. marts 2007 - 13:07 #6
så siger den "Compile error: Argument not optional" til load.userform
Avatar billede splokit Nybegynder
14. marts 2007 - 13:11 #7
Sub X()   
Load Userform1
UserForm1.Show
Din Kode
UserForm1.Hide
End sub
Avatar billede jesper_munk Nybegynder
14. marts 2007 - 13:13 #8
det der så sker er at den viser min userform men macroen kører ikke før jeg lukker userformen
Avatar billede splokit Nybegynder
14. marts 2007 - 13:18 #9
du tager ikke

sub din_kode()
End sub

og sætter det ind i din kode vel!?

Sub X()   
Load Userform1
UserForm1.Show
Din Kode
UserForm1.Hide
End sub
Avatar billede splokit Nybegynder
14. marts 2007 - 13:26 #10
Sub X()   
Load Userform1
UserForm1.Show
Call "Navn på din kode" uden ""
If Application.Wait(Now + TimeValue("0:00:15")) Then
UserForm1.Hide
End If
End sub
Avatar billede jesper_munk Nybegynder
14. marts 2007 - 13:28 #11
jeg har lavet det på denne måde:

sub min_kode()
Load UserForm1
UserForm1.Show
Min Kode
UserForm1.Hide
End sub

Jeg har ikke lavet en ny sub til at loade og vise UserForm1, skal jeg det???
Avatar billede jesper_munk Nybegynder
14. marts 2007 - 13:37 #12
selv om jeg laver en ny sub ifølge hvad du skrev:

Sub X()   
Load Userform1
UserForm1.Show
Call "Navn på din kode" uden ""
If Application.Wait(Now + TimeValue("0:00:15")) Then
UserForm1.Hide
End If
End sub

Så kører den først min kode når jeg lukker userformen
Avatar billede splokit Nybegynder
14. marts 2007 - 13:38 #13
Du skal bare smide de her to på i din kode lige under Sub

Load UserForm1
UserForm1.Show


Og den her over end sub i din kode

UserForm1.Hide

Så skulle den vise din userform og kore din kode og når den er kørt lukker den din userform og viser dit ark igen..
Avatar billede splokit Nybegynder
14. marts 2007 - 13:39 #14
prøv vis din kode..
Avatar billede jesper_munk Nybegynder
14. marts 2007 - 13:46 #15
Her er en af de macroer:

Sub Slet()
   
Load UserForm1
UserForm1.Show
   
    Range("AA11").Value = ""
   
    'Start x ved række 14
    x = 14
    y = 13
   
    'Loop de antal år der er valgt
    Do While Cells(x, 1).Value > 0
        Cells(x, 1).Value = ""
        Cells(x, 2).Value = ""
        Cells(x, 3).Value = ""
        Cells(x, 4).Value = ""
        Cells(x, 5).Value = ""
        Cells(x, 6).Value = ""
        Cells(x, 7).Value = ""
        Cells(x, 8).Value = ""
        Cells(x, 9).Value = ""
        Cells(x, 10).Value = ""
        Cells(x, 11).Value = ""
        Cells(x, 12).Value = ""
        Cells(y, 28).Value = ""
        Cells(y, 29).Value = ""
        Cells(y, 30).Value = ""
        Cells(y, 31).Value = ""
        Cells(y, 32).Value = ""
        Cells(y, 33).Value = ""
        Cells(y, 34).Value = ""
        Cells(y, 35).Value = ""
        Cells(x, 27).Value = ""
        Cells(x, 28).Value = ""
        Cells(x, 29).Value = ""
        Cells(x, 30).Value = ""
        Cells(x, 31).Value = ""
        Cells(x, 32).Value = ""
        Cells(x, 33).Value = ""
        Cells(x, 34).Value = ""
        Cells(x, 35).Value = ""
        Cells(x, 36).Value = ""
        Cells(x, 37).Value = ""
        Cells(x, 38).Value = ""
        Cells(x, 39).Value = ""
        Cells(x, 40).Value = ""
        Cells(x, 41).Value = ""
       
    'Fjern borders
   
        Cells(x, 1).Borders(xlEdgeLeft).LineStyle = xlNone
        Cells(x, 1).Borders(xlEdgeBottom).LineStyle = xlNone
        Cells(y, 1).Borders(xlEdgeLeft).LineStyle = xlNone
        Cells(x, 2).Borders(xlEdgeBottom).LineStyle = xlNone
        Cells(x, 3).Borders(xlEdgeBottom).LineStyle = xlNone
        Cells(x, 4).Borders(xlEdgeBottom).LineStyle = xlNone
        Cells(x, 5).Borders(xlEdgeBottom).LineStyle = xlNone
        Cells(x, 6).Borders(xlEdgeBottom).LineStyle = xlNone
        Cells(x, 7).Borders(xlEdgeBottom).LineStyle = xlNone
        Cells(x, 8).Borders(xlEdgeBottom).LineStyle = xlNone
        Cells(x, 9).Borders(xlEdgeBottom).LineStyle = xlNone
        Cells(x, 10).Borders(xlEdgeBottom).LineStyle = xlNone
        Cells(x, 11).Borders(xlEdgeBottom).LineStyle = xlNone
        Cells(x, 12).Borders(xlEdgeRight).LineStyle = xlNone
        Cells(x, 12).Borders(xlEdgeBottom).LineStyle = xlNone
        Cells(y, 12).Borders(xlEdgeRight).LineStyle = xlNone
       
    'Forhøj værdin af x pr loop
        x = x + 1
        y = y + 1
       
    Loop
               
    UserForm1.Hide
   
End Sub
Avatar billede kabbak Professor
14. marts 2007 - 13:47 #16
Lav
UserForm1.Show

om til

UserForm1.Show 0


Så kører alle makroer
Avatar billede kabbak Professor
14. marts 2007 - 13:52 #17
Lidt forklaring, 0 efter Show, betyder at userformens ShowModal, sættes til false,når den er det, kan makroer arbejde med celler o.s.v., da userformen så ikke låser makroerne.
Avatar billede splokit Nybegynder
14. marts 2007 - 13:55 #18
Så lærte jeg da lige en ny ting selv.. Smiler
Avatar billede jesper_munk Nybegynder
14. marts 2007 - 14:07 #19
det virker ikke helt som jeg havde håbet, UserForm1 vises men når macroen skal lave noget et andet sted så kan man ikke længere se UserForm1
Avatar billede passiflora Juniormester
14. marts 2007 - 14:20 #20
Jeg ville starte min makro med    application.ScreenUpdating = False

og slutte af med                  application.ScreenUpdating = true

... så arbejder makroerne uden at du umiddelbart kan se det og MEGET hurtigere ...
Avatar billede jesper_munk Nybegynder
14. marts 2007 - 14:46 #21
>sbrander

Mange tak for det, det var lige hvad jeg skulle bruge, jeg havde også et problem med at excel var tæmmelig længe om at vise et billede, men din kode speedede det hele op

Hvad gør jeg nu for at give point?
Avatar billede passiflora Juniormester
14. marts 2007 - 14:54 #22
Velbekom ... egentlig kun tænkt som kommentar ...

Hvis du syns jeg skal have point så tak ...
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
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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