VBA Barre de progression

Nico1984

Membre confirmé
12 Janvier 2013
11
1
Salut,

Je reviens vous voir car une fois de plus je suis bloqué dans mon projet macro compatible mac pc. Je crois que c'est le dernier truc qui bloque donc j'ai espoir. A partir de ce très bon tuto j'ai réussi à faire une barre de progression qui fonctionne très bien sur pc comme dans la vidéo du tuto mais sur Mac ça bloque.
Dans la vidéo il écrit sont code dans le UserForm, dans ma macro je l'écris directement dans le code de la macro car elle a une structure de type :

boucle1 0 to n
boucle2 0 to m
code autre
barre de progression
fin boucle2

boucle3 0 to X
code autre
barre de progression
fin boucle3
fin boucle1

La structure de la macro est validée car elle fonctionne très bien sur PC.
(Je sais qu'il faut éviter au maximum les boucles imbriquées dans des boucles mais au vu de mon faible niveau en VBA c'est le mieux que je puisse faire.)

Voici le code de la barre de progression qui marche sur pc:

UserTest.Show
compteur = compteur + 1
If compteur Mod pourcent = 0 Then
Progression = Progression + 1
UserTest.Label1 = Progression & "%"
UserTest.ImageBarre.Width = Progression * 1.8
DoEvents
End If

compteur, pourcent et progression sont des variables publics

sur Mac j'ai le userForm qui s'affiche mais je dois cliquer sur la croix pour passer au pourcentage suivant et ça à chaque fois. Ce qui rend la barre de progression complétement inutile et même gênante.

J'ai l'impression que le code une fois arrivé au userform, ne revient pas sur la macro. J'ai essayé d’héberger le code dans le useform directement et de le fermer à chaque fois avec unload me mais je n'ai aps eu le rendu attendu car la fenetre se fermait bien mais ça donnait un effet clignotant sans augmentation de la barre.

Avez vous des idées ??? (Enfin si quelqu'un à compris mon problème car j'ai pas l'impression d'avoir été clair).

En vous remerciant par avance,

Cordialement,
Nicolas
 
Je pense que tu mets là le doigt sur une des différences importantes entre les versions Mac et Windows du VBA d'Excel : la version d'Excel pour Mac n'a pas de "UserForm" non modal : une fois activé il garde le focus et attend une interaction, comme tu l'as constaté.

Il va falloir te passer de ma barre de progression dans la version Mac, ou utiliser un autre mode d'affichage pour un simple texte d'attente, je crains...

Je ne connais pas de barre de progression opérationnelle dans la version Mac d'Excel...
 
Une fois de plus Aliboron je te remercie pour ta réponse, mais je suis trop têtu pour abandonner, je vais chercher une autre façon de faire cette barre de progression sans passer par un userform si il le faut. En tout cas maintenant, je sais que je ne dois pas m'acharner dans cette voie.
Je te tiens au courant si je trouve un truc.
A très bientôt j'éspère,

Cordialement,
Nicolas