Avatar billede valsoeje Nybegynder
23. maj 2004 - 20:17 Der er 2 kommentarer og
1 løsning

Skille en makro ad.

Jeg har et VBA eksempel her, som viser en Progress Bar mens der genereres tilfældige tal. Jeg vil gerne erstatte den del af makroen som genererer tallene og erstatte med min egen makro, som gør noget andet. Men hvad skal jeg beholde ?

Sub Test()
'  The UserForm1_Activate sub calls Main
    UserForm1.LabelProgress.Width = 0
    UserForm1.Show
End Sub

Sub Main()
'  Inserts random numbers on the active worksheet
    Dim Counter As Integer
    Dim RowMax As Integer, ColMax As Integer
    Dim r As Integer, c As Integer
    Dim PctDone As Single
   
    If TypeName(ActiveSheet) <> "Worksheet" Then Exit Sub
    Cells.Clear
    Application.ScreenUpdating = False
    Counter = 1
    RowMax = 100
    ColMax = 25
    For r = 1 To RowMax
        For c = 1 To ColMax
            Cells(r, c) = Int(Rnd * 1000)
            Counter = Counter + 1
        Next c
        PctDone = Counter / (RowMax * ColMax)
        With UserForm1
            .FrameProgress.Caption = Format(PctDone, "0%")
            .LabelProgress.Width = PctDone * (.FrameProgress.Width - 10)
        End With
'      The DoEvents statement is responsible for the form updating
        DoEvents
    Next r
    Unload UserForm1
End Sub
Avatar billede bak Forsker
23. maj 2004 - 22:06 #1
Sub Test()
'  The UserForm1_Activate sub calls Main
    UserForm1.LabelProgress.Width = 0
    UserForm1.Show
End Sub

Sub Main()
'  Inserts random numbers on the active worksheet
    Dim Counter As Integer
    Dim RowMax As Integer, ColMax As Integer
    Dim r As Integer, c As Integer
    Dim PctDone As Single
   
    If TypeName(ActiveSheet) <> "Worksheet" Then Exit Sub
    Application.ScreenUpdating = False
        For r = 1 To  xxxx  'hvor mange gange skal du gennem løkken
        'her indsætter du det der skal ske

        PctDone = 'her udregner du selv procenten
        With UserForm1
            .FrameProgress.Caption = Format(PctDone, "0%")
            .LabelProgress.Width = PctDone * (.FrameProgress.Width - 10)
        End With
'      The DoEvents statement is responsible for the form updating
        DoEvents
    Next r
    Unload UserForm1
End Sub
Avatar billede valsoeje Nybegynder
24. maj 2004 - 10:01 #2
Tak bak ;=)
Det kører som smurt.
Avatar billede bak Forsker
24. maj 2004 - 10:18 #3
så får du lige et svar :-)
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