Quelque part, dans mes lignes de codes, j'ai une macro (appelée par plusieurs macros) dont la structure est la suivante (et cette structure est répétée 15 fois environ:
Sub MacroXXXX()
If Range("A1").Value = 1 then
Macro1
If Range("A2").Value = 2 then
Macro2
End If
End If
Jusque là tout va bien. Sauf que au fur et à mesure des demandes d'amélioration de mon fichier qui me sont faites, j'ai introduit à l'ouverture du fichier un Userform avec Option A et Option B.
Macro2 est une boite de dialogue toute basique mais comme cette brique est répetée un grand nombre de fois, j'ai plein de boite de dialogue identiques qui s'ouvrent avec l'option B et OK à cocher à chaque fois, d'où un utilisateur qui finit par craquer.
Mais je n'ai pas envie de tout casser.
Je voudrais que:
Option A : MacroXXXX s'éxécute telle quelle
Option B : la macro2 de MacroXXXX ne s'exécute pas meme si la condition Range("A2").Value = 2 est vraie
J'ai pensé à introduire la notion de booléen et/ou fonction avec le lancement de MacroXXXX .
du genre :
Option A : MacroXXXX(macro2=true)
Option B : MacroXXXX(macro2=false)
mais je ne maitrise pas du tout la structure des booléens et la décalaration des variables
'au lieu de l'appeler par MacroXXXX
'tu l'appelles par MacroXXXX False si tu ne veux PAS executer Macro2
'tu l'appelles par MacroXXXX True si tu VEUX executer Macro2
Sub MacroXXXX(LaunchMacro2 As Boolean)
Select Case Range("A1").Value
Case 1: Macro1
Case 2:
If LaunchMacro2 Then Macro2
End Select
Pour l'utilisation des booléens et pour l'utilisation de la structure:
"Select case.. Case... End Select" dont le fonctionnement me convient mieux que "If.. Then... End If"
et qui rend les quelques 1500 lignes de codes plus light (moins quelques unes maintenant).