Je cherche a savoir s'il est possible de montrer un userform lors du
deroulement d'une macro sans que celle-ci s'arrete pour autant ...
Est-ce possible ?
Merci d'avance !
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
MPi
Salut,
Si tu appelles ta macro à partir du Userform, ça devrait fonctionner. La macro doit être dans un module et, plutôt que d'appeler la macro directement, tu appelles UserForm1.Show
Et pour que l'Userform apparaîsse bien, il faut mettre DoEvents
Ex: Dans la feuille ou dans le module: Sub AppelDeMacro() UserForm1.Show End Sub
Dans l'UserForm: Private Sub UserForm_Activate() DoEvents MaMacro Unload Me End Sub
Michel
Bonjour tout le monde
Je cherche a savoir s'il est possible de montrer un userform lors du deroulement d'une macro sans que celle-ci s'arrete pour autant ... Est-ce possible ? Merci d'avance !
Salut,
Si tu appelles ta macro à partir du Userform, ça devrait fonctionner.
La macro doit être dans un module et, plutôt que d'appeler la macro
directement, tu appelles UserForm1.Show
Et pour que l'Userform apparaîsse bien, il faut mettre DoEvents
Ex:
Dans la feuille ou dans le module:
Sub AppelDeMacro()
UserForm1.Show
End Sub
Dans l'UserForm:
Private Sub UserForm_Activate()
DoEvents
MaMacro
Unload Me
End Sub
Michel
Bonjour tout le monde
Je cherche a savoir s'il est possible de montrer un userform lors du
deroulement d'une macro sans que celle-ci s'arrete pour autant ...
Est-ce possible ?
Merci d'avance !
Si tu appelles ta macro à partir du Userform, ça devrait fonctionner. La macro doit être dans un module et, plutôt que d'appeler la macro directement, tu appelles UserForm1.Show
Et pour que l'Userform apparaîsse bien, il faut mettre DoEvents
Ex: Dans la feuille ou dans le module: Sub AppelDeMacro() UserForm1.Show End Sub
Dans l'UserForm: Private Sub UserForm_Activate() DoEvents MaMacro Unload Me End Sub
Michel
Bonjour tout le monde
Je cherche a savoir s'il est possible de montrer un userform lors du deroulement d'une macro sans que celle-ci s'arrete pour autant ... Est-ce possible ? Merci d'avance !
Michael BAS
Merci cela m'aide déja beaucoup mais je cherche aussi un moyen pour que mon form ne soit pas figé pendant l'execution de ma macro.
Je voudrais en fait lui faire dire via un label
10%
20%...
Y'a-t-il un moyen tout en conservant cette méthode ? Sinon d'autres idées ? Merci beaucoup. Salutations
Merci cela m'aide déja beaucoup mais je cherche aussi un moyen pour que mon
form
ne soit pas figé pendant l'execution de ma macro.
Je voudrais en fait lui faire dire via un label
10%
20%...
Y'a-t-il un moyen tout en conservant cette méthode ?
Sinon d'autres idées ?
Merci beaucoup.
Salutations
Merci cela m'aide déja beaucoup mais je cherche aussi un moyen pour que mon form ne soit pas figé pendant l'execution de ma macro.
Je voudrais en fait lui faire dire via un label
10%
20%...
Y'a-t-il un moyen tout en conservant cette méthode ? Sinon d'autres idées ? Merci beaucoup. Salutations
MPi
Salut,
Je ne connais pas ta macro et ça peut être difficile d'imaginer un pourcentage si on sait quand ça commence mais qu'on ne sait pas quand ça finit... Voici un bout de code qui utilise un Label et aussi un ProgressBar que tu peux trouver dans les contrôles supplémentaires
Donc, place ces 2 contrôles sur un userForm et fais ce test. Ensuite, si ça te plaît, tu pourras toujours l'adapter à ton code. Le code est au plus simple pour être capable de gérer les pourcentages facilement. Tout le code va dans l'UserForm et tu l'appelles avec UserForm.Show.
Note: Si tu ne peux pas déterminer quand ça finit, tu peux toujours utiliser le ProgressBar en le faisant recommencer plusieurs fois.
Option Explicit
Private Sub UserForm_Activate() DoEvents MaMacro Unload Me End Sub
Sub MaMacro() Dim I As Integer, J As Integer
For I = 1 To 100 For J = 1 To 100 Range("A1") = I * J ProgressBar1.Value = I Label1.Caption = I & " %" DoEvents Next DoEvents Next End Sub
Michel
Merci cela m'aide déja beaucoup mais je cherche aussi un moyen pour que mon form ne soit pas figé pendant l'execution de ma macro.
Je voudrais en fait lui faire dire via un label
10%
20%...
Y'a-t-il un moyen tout en conservant cette méthode ? Sinon d'autres idées ? Merci beaucoup. Salutations
Salut,
Je ne connais pas ta macro et ça peut être difficile d'imaginer un
pourcentage si on sait quand ça commence mais qu'on ne sait pas quand ça
finit...
Voici un bout de code qui utilise un Label et aussi un ProgressBar que tu
peux trouver dans les contrôles supplémentaires
Donc, place ces 2 contrôles sur un userForm et fais ce test. Ensuite, si ça
te plaît, tu pourras toujours l'adapter à ton code. Le code est au plus
simple pour être capable de gérer les pourcentages facilement. Tout le code
va dans l'UserForm et tu l'appelles avec UserForm.Show.
Note: Si tu ne peux pas déterminer quand ça finit, tu peux toujours utiliser
le ProgressBar en le faisant recommencer plusieurs fois.
Option Explicit
Private Sub UserForm_Activate()
DoEvents
MaMacro
Unload Me
End Sub
Sub MaMacro()
Dim I As Integer, J As Integer
For I = 1 To 100
For J = 1 To 100
Range("A1") = I * J
ProgressBar1.Value = I
Label1.Caption = I & " %"
DoEvents
Next
DoEvents
Next
End Sub
Michel
Merci cela m'aide déja beaucoup mais je cherche aussi un moyen pour que mon
form
ne soit pas figé pendant l'execution de ma macro.
Je voudrais en fait lui faire dire via un label
10%
20%...
Y'a-t-il un moyen tout en conservant cette méthode ?
Sinon d'autres idées ?
Merci beaucoup.
Salutations
Je ne connais pas ta macro et ça peut être difficile d'imaginer un pourcentage si on sait quand ça commence mais qu'on ne sait pas quand ça finit... Voici un bout de code qui utilise un Label et aussi un ProgressBar que tu peux trouver dans les contrôles supplémentaires
Donc, place ces 2 contrôles sur un userForm et fais ce test. Ensuite, si ça te plaît, tu pourras toujours l'adapter à ton code. Le code est au plus simple pour être capable de gérer les pourcentages facilement. Tout le code va dans l'UserForm et tu l'appelles avec UserForm.Show.
Note: Si tu ne peux pas déterminer quand ça finit, tu peux toujours utiliser le ProgressBar en le faisant recommencer plusieurs fois.
Option Explicit
Private Sub UserForm_Activate() DoEvents MaMacro Unload Me End Sub
Sub MaMacro() Dim I As Integer, J As Integer
For I = 1 To 100 For J = 1 To 100 Range("A1") = I * J ProgressBar1.Value = I Label1.Caption = I & " %" DoEvents Next DoEvents Next End Sub
Michel
Merci cela m'aide déja beaucoup mais je cherche aussi un moyen pour que mon form ne soit pas figé pendant l'execution de ma macro.
Je voudrais en fait lui faire dire via un label
10%
20%...
Y'a-t-il un moyen tout en conservant cette méthode ? Sinon d'autres idées ? Merci beaucoup. Salutations