Nom de macro en variable ou en boucle VBA Excel 2017
RésoluDragonBallZ1981 -
Bonjour,
Aillant de problème résolu grâce à votre aide je reviens vers vous.
Je sais pas trop comment expliquer ça mais est-il possible de mettre le nom d'une macro en variable afin de mettre une seule fois la condition ou bien de la décomposé pour l'utilisé dans une boucle
Exemple:
J'ai différente macro
Sub Menuiserie_1
Sub Menuiserie_2
Sub Menuiserie_3
etc...
1ère solution, est-il possible de faire
Dim Menuiserie As Sub
If xxxxx Then
Menuiserie = Menuiserie_1
ElseIf xxxxx Then
Menuiserie=Menuiserie_2
ElseIf xxxxx Then
Menuiserie=Menuiserie_3
End if
Call Menuiserie
Ou bien 2ème solution si c'est possible en boucle
For m = 1 To Nbr_Menuiserie
Call Menuiserie_m
next m
Merci de votre aide
Windows / Chrome 104.0.0.0
- Boucle excel sans macro
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
3 réponses
Bonjour,
Un exemple avec toutes les macros dans un même module :
Option Explicit Sub Menuiserie_1() MsgBox "M1" End Sub Sub Menuiserie_2() MsgBox "M2" End Sub Sub Menuiserie_3() MsgBox "M3" End Sub Sub EnvoiAvecIf() Dim res As String res = InputBox("saisir un chiffre entre 1 et 3", "Quelle macro lancer?") If Val(res) < 1 Or Val(res) > 3 Then MsgBox "Imbécile!" Else Application.Run "Menuiserie_" & res End If End Sub Sub EnvoiEnBoucle() Dim i As Integer For i = 1 To 3 Application.Run "Menuiserie_" & i Next End Sub
Pour le cas ou les macros à appeler seraient dans un autre module (exemple Module12) :
Option Explicit Sub EnvoiAvecIf() Dim res As String res = InputBox("saisir un chiffre entre 1 et 3", "Quelle macro lancer?") If Val(res) < 1 Or Val(res) > 3 Then MsgBox "Imbécile!" Else Application.Run "Module12.Menuiserie_" & res End If End Sub Sub EnvoiEnBoucle() Dim i As Integer For i = 1 To 3 Application.Run "Module12.Menuiserie_" & i Next End Sub
Bonjour Pijaku,
Merci beaucoup, j'avais essayer le "Application.run" mais j'avais pas réussis, peut-être à cause des modules.
Je vais bien étudier ta solution et l'adapter a mon besoin,
Encore merci beaucoup pour l'aide apporter sur ce site.
Je reviendrais clôturer le sujet lorsque j'aurai réussis.
Merci.