Artikel ID: 211736 - Laatste beoordeling: woensdag 1 februari 2012 - Wijziging: 1.0

Een voortgangsbalk aan een gebruikersformulier in Excel weergeven

SysteemtipDit artikel is bedoeld voor een ander besturingssysteem dan u gebruikt. Artikelinhoud die niet relevant voor u is, is uitgeschakeld.
Zie voor een Microsoft Excel 97-versie van dit artikel 170782  (http://support.microsoft.com/kb/170782/ ) .

Artikel door idee: door John Walkenbach

Op deze pagina

Alles uitklappen | Alles samenvouwen

Samenvatting

Als u een Microsoft Visual Basic for Applications-macro lang duurt om te voltooien, kunt u de gebruiker geeft een indicatie dat de macro correct verloopt. In dit artikel wordt beschreven hoe u een voortgangsbalk maken met een gebruikersformulier in Microsoft Excel.

Meer informatie

Microsoft biedt programming voorbeelden voor afbeelding alleen, zonder expliciete of impliciete garantie. Dit omvat, maar is niet beperkt tot impliciete garanties van verkoopbaarheid of geschiktheid voor een bepaald doel. In dit artikel wordt ervan uitgegaan dat u bekend met de programmeertaal wordt aangetoond en de hulpmiddelen die worden gebruikt bent voor het maken en foutopsporing procedures. Ondersteuningstechnici van Microsoft kunt de functionaliteit van een bepaalde procedure uitgelegd. Zij zal deze voorbeelden om extra functionaliteit of procedures uw specifieke behoeften te bouwen echter niet wijzigen.

Het gebruikersformulier maken

In het volgende voorbeeld wordt een subroutine van Visual Basic gevuld een groot bereik cellen met een willekeurig getal. De indicator ziet u de macro wordt uitgevoerd juist.
  1. Open een nieuwe werkmap in Excel.
  2. Klik in Microsoft Office Excel 2003 en in eerdere versies van Excel Hulpprogramma 's, wijs Macro, en klik vervolgens op Visual Basic-Editor.

    Klik in Microsoft Office Excel 2007 Visual Basic in de Code groep op de Ontwikkelaar tabblad.

    Opmerking Om weer de Ontwikkelaar tabblad op het lint, als volgt:
    1. Excel 2007 start, klikt u op de Microsoft Office-knop, en klik vervolgens op Opties voor Excel.
    2. In de Opties voor Excel het dialoogvenster, klikt u op Populaire, en klik vervolgens op de Tabblad Ontwikkelaars op het lint weergeven het selectievakje.
  3. Op de Invoegen menu, klik op UserForm.
  4. Tekent een Label besturingselement op het formulier.
  5. De volgende eigenschappen wijzigen van de Label controle op de de volgende waarden:
       Property        Value
       --------------------------------------------
       Caption         Now updating. Please wait...
    					
    Opmerking Als de Eigenschappen venster niet zichtbaar is, klikt u op Het eigenschappenvenster op de Weergave menu.
  6. Tekent een Frame besturingselement op het formulier.
  7. De volgende eigenschappen wijzigen van de Frame controle op de de volgende waarden:
        
       Property        Value
       -----------------------------
       Name            FrameProgress
    					
  8. Tekent een Label controle op de Frame besturingselement.
  9. De volgende eigenschappen wijzigen van de Label controle op de de volgende waarden:
        Property        Value
        -------------------------------------
        Name            LabelProgress
        BackColor       &H000000FF&
        SpecialEffect   fmSpecialEffectRaised
    					

Typ de macrocode

  1. Dubbelklik op het formulier te openen de Code venster voor het gebruikersformulier.
  2. Typ in de module de volgende code voor de UserForm_Activate gebeurtenis:
    Private Sub UserForm_Activate()
        ' Set the width of the progress bar to 0.
        UserForm1.LabelProgress.Width = 0
    
        ' Call the main subroutine.
        Call Main
    End Sub
    					
  3. Op de Invoegen menu, klik op Module.
  4. In de Code venster voor de module de volgende code typt:
    Sub ShowUserForm()
        UserForm1.Show
    End Sub
    
    Sub Main()
        Dim Counter As Integer
        Dim RowMax As Integer, ColMax As Integer
        Dim r As Integer, c As Integer
        Dim PctDone As Single
    
        Application.ScreenUpdating = False
        ' Initialize variables.
        Counter = 1
        RowMax = 100
        ColMax = 25
    
        ' Loop through cells.
        For r = 1 To RowMax
            For c = 1 To ColMax
                'Put a random number in a cell
                Cells(r, c) = Int(Rnd * 1000)
                Counter = Counter + 1
            Next c
    
            ' Update the percentage completed.
            PctDone = Counter / (RowMax * ColMax)
    
            ' Call subroutine that updates the progress bar.
            UpdateProgressBar PctDone
        Next r
        ' The task is finished, so unload the UserForm.
        Unload UserForm1
    End Sub
    
    Sub UpdateProgressBar(PctDone As Single)
        With UserForm1
    
            ' Update the Caption property of the Frame control.
            .FrameProgress.Caption = Format(PctDone, "0%")
    
            ' Widen the Label control.
            .LabelProgress.Width = PctDone * _
                (.FrameProgress.Width - 10)
        End With
    
        ' The DoEvents allows the UserForm to update.
        DoEvents
    End Sub
    					
  5. Terug naar Excel.
  6. Wijs in Excel 2003 en in eerdere versies van Excel Macro op de Hulpprogramma 's menu en klik vervolgens op Macro 's.

    Klik in Excel 2007 Macro 's in de Code groep op de Ontwikkelaar tabblad.
  7. In de Macro in het dialoogvenster Selecteer ShowUserForm, en klik vervolgens op Uitvoeren.
Er verschijnt een dialoogvenster met een rode voortgangsbalk. De voortgangsbalk wordt verhoogd als de Hoofdmenu subroutine vult de cellen op het werkblad.

De ShowUserForm subroutine toont het gebruikersformulier. De procedure die is gekoppeld aan de Activeren gebeurtenis van het formulier gebruiker roept de Hoofdmenu de subroutine. De Hoofdmenu subroutine vult de cellen met willekeurige getallen. Bovendien de subroutine aanroepen de UpdateProgressBar subroutine aan de Label besturingselement op het formulier.

Opmerking Wanneer u deze techniek gebruikt, duurt de macro een fractie langer beoogde taken te voltooien.

De informatie in dit artikel is van toepassing op:
  • Microsoft Office Excel 2007
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 2000 Standard Edition
  • Microsoft Office Excel 2003
  • Microsoft Excel 2010
Trefwoorden: 
kbinfo kbexpertisebeginner kbcode kbhowto kbmacro kbmt KB211736 KbMtnl
Automatische vertalingAutomatische vertaling
BELANGRIJK: Dit artikel is vertaald door de vertaalmachine software van Microsoft in plaats van door een professionele vertaler. Microsoft biedt u professioneel vertaalde artikelen en artikelen vertaald door de vertaalmachine, zodat u toegang heeft tot al onze knowledge base artikelen in uw eigen taal. Artikelen vertaald door de vertaalmachine zijn niet altijd perfect vertaald. Deze artikelen kunnen fouten bevatten in de vocabulaire, zinsopbouw en grammatica en kunnen lijken op hoe een anderstalige de taal spreekt en schrijft. Microsoft is niet verantwoordelijk voor onnauwkeurigheden, fouten en schade ontstaan door een incorrecte vertaling van de content of het gebruik ervan door onze klanten. Microsoft past continue de kwaliteit van de vertaalmachine software aan door deze te updaten.
De Engelstalige versie van dit artikel is de volgende:211736  (http://support.microsoft.com/kb/211736/en-us/ )