Lier 2 macros

Résolu
rEVOLV3r Messages postés 223 Date d'inscription   Statut Membre Dernière intervention   -  
skk201 Messages postés 942 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai juste un petit soucis...je ne sais plus comment faire pour reprendre les valeurs des variables d'une macro pour les utiliser dans une autre : exemple

Sub selection_references_update()

Dim flag As Boolean
If Range("I16") = "Vrai" Then flag = True

End Sub

Sub test()

Dim flag As Boolean
Call selection_references_update

MsgBox (flag)

End Sub

Ici flag est true dans la première, mais quand j'essaie de display sa valeur dans la deuxième, il est a false. Donc la liaison n'est pas faite. Avez-vous la solution ?

merci beaucoup !

2 réponses

  1. Iama Messages postés 324 Statut Membre 14
     
    Bonjour

    Tu peux aussi déclarer te variable en Public ou en Dim au début de ton module.

    cordialement
    1
    1. skk201 Messages postés 942 Date d'inscription   Statut Membre Dernière intervention   55
       
      Précision :

      Si la variable est public elle sera disponible pour toutes les macros de ton classeur et ne sera remise "à zéro" que lorsque le classeur sera fermer.

      Si la variable est un Dim placer au début du module, elle sera remise "à zéro" à la fin de la macro. Tu pourra l'appeler depuis n'importe quel macro du module ou tu as déclarer le Dim
      0
  2. skk201 Messages postés 942 Date d'inscription   Statut Membre Dernière intervention   55
     
    Bonjour

    Function selection_references_update()
    
    If Range("I16") = "Vrai" Then selection_references_update = True
    
    End Function
    
    Sub test()
    
    Dim flag As Boolean
    flag = selection_references_update 
    
    MsgBox (flag)
    
    End Sub 


    Mais personnellement j'écrirais :

    Sub test()
    Dim bool As Boolean
        bool = selectionReferences_UPD
    MsgBox (bool)
    End Sub 
    
    Function selectionReferences_UPD()
    If UCase(Celle(16, 9).Value) = "VRAI" selectionReferences_UPD = True
    End Function


    Après chacun sa manière :)

    *Vous pouvez mettre en forme votre code grâce à la flèche en haut a droite de l'éditeur de texte.
    Pensez mettre vos messages en [Résolu] et cliquer sur le + des conseil qui vous ont été utiles."
    0