VB Excel - Macros imbriquées - conditions - booléens

Niceweekend Messages postés 2 Date d'inscription mercredi 16 avril 2008 Statut Membre Dernière intervention 16 avril 2008 - 16 avril 2008 à 10:51
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 - 16 avril 2008 à 19:37
Bonjour,

Voici mon problème:
Sous Excel V2000


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

Merci d'avance

      

3 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
16 avril 2008 à 10:56
Salut,
Regarde si ceci t'aide un peu

'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
   
End Sub , ----
[code.aspx?ID=41455 By Renfield]

@+: Ju£i?n
Pensez: Réponse acceptée
0
Niceweekend Messages postés 2 Date d'inscription mercredi 16 avril 2008 Statut Membre Dernière intervention 16 avril 2008
16 avril 2008 à 19:30
Eh bien double merci

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).
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
16 avril 2008 à 19:37
Re,
Si tu estimes que ton problème est résolu, pense à appuyer sur réponse acceptée sur le ou les posts qui t'ont fait avancer.

<hr size="2" width="100%" />@+: Ju£i?n
Pensez: Réponse
0
Rejoignez-nous