Comment créer une barre de progression en VBA

liedo

XLDnaute Nouveau
Re : Comment créer une barre de progression en VBA

Merci pour ce tutoriel. Mais ça n'a pas marché chez moi, je ne sais pas si j'ai raté quelque chose.
 

JJM

XLDnaute Occasionnel
Re : Comment créer une barre de progression en VBA

Bonjour,
Idem pour moi, cela ne fonctionne pas correctement : le UserForm s'affiche avec la barre rouge à 100%, pendant une fraction de seconde seulement. Et il écrit des "1" en A1, A2 et A3.
Je pense revoir le code.
 

remyzuka

XLDnaute Nouveau
Re : Comment créer une barre de progression en VBA

Bonjour à tous,

Tout d'abord merci à orangerpour ce tuto.

Je m'en suis servi pour créer mon userform et ça fonctionne très bien.

J'ai ensuite ajouté un code trouvé sur le net pour masquer la barre de titre du Userform.

Enfin, j'ai changer les propriété du USF pour qu'il prenne la place de la barre d'état.

Rien de grandiose mais l'illusion pour mes collègues est parfaite.
 

Pièces jointes

  • StatusBar.ProgressBar.xls
    49.5 KB · Affichages: 1 545
  • StatusBar.ProgressBar.xls
    49.5 KB · Affichages: 1 680
  • StatusBar.ProgressBar.xls
    49.5 KB · Affichages: 1 853
Dernière édition:

ThePhoenix54

XLDnaute Nouveau
Re : Comment créer une barre de progression en VBA

Bonjour yann-56

ca ne fonctionne pas chez moi. des macro perso sont utiliser dans ta macro
pourrais tu nous la redeposer ?

merci encore
 

Dranreb

XLDnaute Barbatruc
Re : Comment créer une barre de progression en VBA

Bonjour.

Personnellement j'utilise ça.

Si ça vous intéresse, je peux en étudier une version qui s'affiche à la place de la barre d'état, même si un utilisateur lambda, agacé d'avoir déjà attendu une dizaine de secondes, n'a pas forcément eu le réflexe de diriger son regard dessus…
 

Pièces jointes

  • BarProgThePhoenix54.xls
    66 KB · Affichages: 850
Dernière édition:

VIARD

XLDnaute Impliqué
Re : Comment créer une barre de progression en VBA

Bonjour Dranred, ThePhoenix54, et à tous

Voici une autre version de Barre et ajustable 2 modes
fichier joint.

Cordialement

Jean-Paul
 

Pièces jointes

  • BarreProgression2Modes.xls
    91 KB · Affichages: 738
  • BarreProgression2Modes.xls
    91 KB · Affichages: 543

Dranreb

XLDnaute Barbatruc
Re : Comment créer une barre de progression en VBA

Bonjour.

Pas bon tout ça: les traitements sont partout faits dans les UserForm au lieu d'être fait n'importe où, là où je veux pouvoir profiter quand ça me prend d'un service barre de progression sans avoir besoin d'y changer quoi que ce soit, ni de changer grand chose dans le code qu'il doit suivre.
 

sdevers

XLDnaute Nouveau
Re : Comment créer une barre de progression en VBA

Bonjour la communauté,

J'avais trouvé un bel exemple de barre de progression sur un autre site (Créer une barre de progression avec Excel). Malheureusement, je ne parviens pas à l'adapter à mes besoins.

Voici le code de base de l'exemple:
Code:
Private Sub CommandButton1_Click()
    
    'Macro : Sébastien Mathier - Excel-Pratique
    'Tuto vidéo : http://www.blog-excel.com/barre-de-progression-excel/
    
    Application.ScreenUpdating = False
    
    UserForm_demo.Height = 121.5

    compteur = 0
    progression = 0
    
    For ligne = 1 To 5000
        For col = 1 To 50
        
            compteur = compteur + 1
            Cells(ligne, col) = ligne + col
            
            If compteur Mod 2500 = 0 Then '=> sera exécuté 100x
                
                progression = progression + 1
                Image_barre.Width = progression * 1.5
                Label_barre.Caption = progression & "%"
                DoEvents
                
            End If
            
        Next
    Next
    
    Application.ScreenUpdating = True
    UserForm_demo.Height = 136.5
    
End Sub

Il utilise donc un compteur avec un Mod 2500 car il a 50.000 occurrences à sa boucle (par facilité son exemple ajoute un chiffre dans 50.000 cellules). Il incrémente donc de 0,5% à chaque fois qu'il arrive à un résultat de 0 avec son Mod 2500. Ca fonctionne extrêmement bien... mais pas pour mon code ! En effet, je n'ai pas 50.000 occurrences mais un nombre indéterminé.

Dans mon code, je veux (notamment car j'adapterai ma progress bar à d'autres procédures également) ajouter un pied-de-page personnalisé sur chaque page du classeur. Le nombre de page ne dépend pas de moi. Il pourrait y en avoir 2 ou 3 comme 30. J'ai donc un Sheet.Count comme limite maximale qui est une variable.

Code:
Private Sub CommandButton1_Click()
    
    'Macro : Sébastien Mathier - Excel-Pratique
    'Tuto vidéo : http://www.blog-excel.com/barre-de-progression-excel/
    
    Application.ScreenUpdating = False
    
    UserForm_demo.Height = 121.5

    compteur = 0
    progression = 0
    Dim X As Byte
    
    For X = 1 To Sheets.Count
        
        With Sheets(X).PageSetup
            compteur = compteur + 1
            .LeftFooter = "test" 'je simplifie mon footer pour le forum
            
            If compteur Mod Sheets.Count = 0 Then 
                
                progression = progression + 1
                Image_barre.Width = progression * 1 / Sheets.Count
                Label_barre.Caption = progression & "%"
                DoEvents
                
            End If

Problème, dans ce code, la barre de progression reste calée à 0 même quand la procédure est terminée. Je n'arrive pas à définir à quelle vitesse ma barre de progression doit avancer (là où il y avait le Mod 2500 chez l'auteur). Il me faudrait une variable...

Quelqu'un de plus futé que moi pourrait m'aider?

Merci d'avance,
 

Dranreb

XLDnaute Barbatruc
Re : Comment créer une barre de progression en VBA

Bonjour.
Pourquoi toujours chercher plus compliqué qu'avec mon système ?
VB:
Private Sub CommandButton1_Click()
Dim X As Byte
Application.ScreenUpdating = False
Tâche "PiedsPages", Sheets.Count
For X = 1 To Sheets.Count
   With Sheets(X).PageSetup
          
      .LeftFooter = "test" 'je simplifie mon footer pour le forum
           
      End With
   Call OùÇaEnEst: Next X
End Sub
Et puis finis !
 

Dranreb

XLDnaute Barbatruc
Re : Comment créer une barre de progression en VBA

Vérifiié par acquis de conscience: le classeur joint au poste #7 est équipé de toute la programmation de service qu'il faut (UFmBarProg et MBarreProg).
 
Dernière édition:

sdevers

XLDnaute Nouveau
Re : Comment créer une barre de progression en VBA

Bonjour.
Pourquoi toujours chercher plus compliqué qu'avec mon système ?

Merci pour ta réponse Dranreb. Je suis désolé mais j'y arrive encore moins avec ton fichier Excel. Je le trouve extrêmement compliqué pour quelqu'un comme moi qui débute. Lorsque j'essaie de le lancer chez moi (même sans rien modifier), la commande de débogage s'ouvre directement. Pas moyen pour moi de l'utiliser sans y passer des heures d'où mon intérêt pour celui de Sébastien Mathier.

Mais merci quand même...
 

Discussions similaires

Statistiques des forums

Discussions
312 103
Messages
2 085 325
Membres
102 862
dernier inscrit
Emma35400