Lier 2 macros

Résolu
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. 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."
    1. Bonjour

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

      cordialement
      1. 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