A voir également:
- [VBA] Userform et changement de macro
- Changer de dns - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Changement d'écriture - Guide
- Macro word - Guide
- Jitbit macro recorder - Télécharger - Confidentialité
2 réponses
Bonsoir,
Quand tu affiches une Userform, l'exécution de la macro qui affiche cette userform est suspendue jusqu'à sa fermeture. Donc en cliquant sur le bouton1, il faut initialiser une variable publique qui va renseigner le programme sur la suite à donner, et fermer la userform. Le code pourrait être celui-ci:
CommandButton1_Click()
ActionSuivante = 1
Me.Hide
End Sub
Et le programme principal interprete ActionSuivante
2:
ligne de code
Userform1.Show
If ActionSuivante = 1 Then Goto 5
If ActionSuivante = 2 Then Goto 4
La variable Action suivante se déclare dans un Module
Public ActionSuivante as Integer
Si je peux te donner un autre conseil, évite d'abuser des Goto. Les programmes spaghetti sont très difficiles à lire donc à déboguer le cas échéant. Quand il y a beaucoup de conditions, utilses plutot l'instruction Select Case ... End Select à l'interieur d'une boucle Do ... While. Autant prendre les bonnes habitudes tout de suite.
A+.
Quand tu affiches une Userform, l'exécution de la macro qui affiche cette userform est suspendue jusqu'à sa fermeture. Donc en cliquant sur le bouton1, il faut initialiser une variable publique qui va renseigner le programme sur la suite à donner, et fermer la userform. Le code pourrait être celui-ci:
CommandButton1_Click()
ActionSuivante = 1
Me.Hide
End Sub
Et le programme principal interprete ActionSuivante
2:
ligne de code
Userform1.Show
If ActionSuivante = 1 Then Goto 5
If ActionSuivante = 2 Then Goto 4
La variable Action suivante se déclare dans un Module
Public ActionSuivante as Integer
Si je peux te donner un autre conseil, évite d'abuser des Goto. Les programmes spaghetti sont très difficiles à lire donc à déboguer le cas échéant. Quand il y a beaucoup de conditions, utilses plutot l'instruction Select Case ... End Select à l'interieur d'une boucle Do ... While. Autant prendre les bonnes habitudes tout de suite.
A+.
Merci de ta réponse Calibos
J'ai testé ta proposition, mais malheureusement il ne m'emmène pas au 'paragraphe' souhaitez lors de l'exécution.
De plus en mettant ActionSuivante as Integer, il me mets une erreur de compilation. Je vais peut-être fait l'impasse dessus ;)
Sinon pour ton conseil, tu n'es pas le seul à me l'avoir donné ^^. Comme j'ai pas mon livre de VBA avec moi, j'ai du improviser un truc. Mais rien n'empêche les améliorations. D'où la Userform, qui sera bien plus joli qu'un simple InputBox ^^
Ta proposition sera la suivante sur la liste :p, dès que je me serai familiariser avec cette fonction.
Merci à toi en tout cas, ça me donne un début de travail
J'ai testé ta proposition, mais malheureusement il ne m'emmène pas au 'paragraphe' souhaitez lors de l'exécution.
De plus en mettant ActionSuivante as Integer, il me mets une erreur de compilation. Je vais peut-être fait l'impasse dessus ;)
Sinon pour ton conseil, tu n'es pas le seul à me l'avoir donné ^^. Comme j'ai pas mon livre de VBA avec moi, j'ai du improviser un truc. Mais rien n'empêche les améliorations. D'où la Userform, qui sera bien plus joli qu'un simple InputBox ^^
Ta proposition sera la suivante sur la liste :p, dès que je me serai familiariser avec cette fonction.
Merci à toi en tout cas, ça me donne un début de travail