Boucle sur appel de Routine, VBA

Boucle sur appel de Routine, VBA - VB/VBA/VBS - Programmation

Marsh Posté le 21-04-2016 à 15:51:32    

Bonjour,
Je vous expose mon problème.
J'ai 50 Sub différentes, nommées Test1,...,Test50
Et je souhaiterai, en fonction d'une valeur rentrée dans une cellule exécuter ce nombre de Sub.
Par exemple si je rentre 5, je veux executer Test1, Test2, Test3, Test4, Test5.
Or je n'arrive pas à faire de boucle sur le numéro contenu dans le nom de ma Sub.
Donc pour le moment j'ai fait ça, mais c'est extrêmement lourd :

Code :
  1. Sub Extract()
  2. Dim n as Integer
  3. n = 0
  4. n = Sheets("Extraction_Launch" ).Cells(17, 2)
  5. Select Case n
  6.     Case 1
  7.         Call Test1
  8.     Case 2
  9.         Call Test1
  10.         Call Test2
  11.     Case 3
  12.         Call Test1
  13.         Call Test2
  14.         Call Test3
  15.     Case 4
  16.         Call Test1
  17.         Call Test2
  18.         Call Test3
  19.         Call Test4
  20.         .
  21.         .
  22.         .
  23.         .
  24.         .
  25.         .


 
Et ainsi de suite jusqu'au case 50 qui appelle mes 50 routines.
 
Si vous avez des solutions je suis preneur !
Merci d'avance
Lipix  :)

Reply

Marsh Posté le 21-04-2016 à 15:51:32   

Reply

Marsh Posté le 21-04-2016 à 16:26:54    

 
            Bonjour,
 
            exemple fonctionnel si la procédure suivante et celles "Test" sont situées
            dans le module de classe du classeur (ThisWorkbook) ou dans celui d'une feuille de calculs :
 

Code :
  1. Sub DemoXtract()
  2.     For n% = 1 To Worksheets("Extraction_Launch" ).[B17].Value
  3.         CallByName Me, "Test" & n, VbMethod
  4.     Next
  5. End Sub


            Pour un module normal, remplacer Me par le CodeName du module …


Message édité par Marc L le 21-04-2016 à 16:29:23
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed