Lier 2 macros

Résolu/Fermé
rEVOLV3r Messages postés 223 Date d'inscription jeudi 12 août 2010 Statut Membre Dernière intervention 21 septembre 2022 - 19 août 2014 à 08:49
skk201 Messages postés 938 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 16 octobre 2016 - 19 août 2014 à 11:43
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 !


A voir également:

2 réponses

Iama Messages postés 319 Date d'inscription mercredi 13 janvier 2010 Statut Membre Dernière intervention 27 mars 2020 14
Modifié par Iama le 19/08/2014 à 11:14
Bonjour

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


cordialement
1
skk201 Messages postés 938 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 16 octobre 2016 54
19 août 2014 à 11:43
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
skk201 Messages postés 938 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 16 octobre 2016 54
Modifié par skk201 le 19/08/2014 à 10:24
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