Variable VB Excel
Résolu
zebulon2503
Messages postés
1229
Date d'inscription
Statut
Membre
Dernière intervention
-
zebulon2503 Messages postés 1229 Date d'inscription Statut Membre Dernière intervention -
zebulon2503 Messages postés 1229 Date d'inscription Statut Membre Dernière intervention -
Salut à tous,
quelqu'un pourrait il me donner la syntaxe pour appeler une variable déclarée dans une procédure "Sub x()" et l'utiliser dans une procédure "Sub y()" ?
Je trouve pas ce que je cherche sur le net :/
Merci d'avance !
quelqu'un pourrait il me donner la syntaxe pour appeler une variable déclarée dans une procédure "Sub x()" et l'utiliser dans une procédure "Sub y()" ?
Je trouve pas ce que je cherche sur le net :/
Merci d'avance !
2 réponses
-
Bonjour,
La variable doit être déclaré à l'extérieur pour avoir une portée
sur les 2 subs.
Exemple type :Option Explicit Dim Z As String Sub XYZ() Call X Call y End Sub ' Sub X() Z = "Message" End Sub ' Sub y() MsgBox Z End Sub '
Lupin-
Je vois pas comment faire.
Dans mon module, j'ai plusieurs "Sub", la premiere appelant les suivantes. La variable que je veux utiliser dans toutes les Sub correspondant à un compteur.
Voici le détail :
-----------------------------------------------------
Sub X()
For i=3 to 391
Call Sub y
Call Sub z
next
End Sub
Sub y()
Cells(i + 1).Activate
Cells(1,1).Value = Cells(1,1) + ActiveCell.Value
End Sub
Sub z()
Cells(i + 3).Activate
Cells(1,2).Value = Cells(1,2) + ActiveCell.value
End Sub
-----------------------------------------------------
Je voulais tout mettre dans une seule procédure mais je dépasse la taille des 65535 caractères maximum autorisés...
-
-
re:
Dim I as Long Sub X() For i=3 to 391 Call y Call z Next End Sub Sub y() Cells(i + 1).Activate Cells(1,1).Value = Cells(1,1) + ActiveCell.Value End Sub Sub z() Cells(i + 3).Activate Cells(1,2).Value = Cells(1,2) + ActiveCell.value End Sub '-
Merci mais j'ai trouvé. J'ai juste passé i en parametre :
----------------------------------------------------------------
Sub X()
For i=3 to 391
Call y(i)
Call z(i)
Next
End Sub
Sub y(i)
Cells(i + 1).Activate
Cells(1,1).Value = Cells(1,1) + ActiveCell.Value
End Sub
Sub z(i)
Cells(i + 3).Activate
Cells(1,2).Value = Cells(1,2) + ActiveCell.value
End Sub
----------------------------------------------------------------
Et ca marche :)
merci pour ton temps passé à me répondre !
-