Variable VB Excel

Résolu/Fermé
zebulon2503 Messages postés 1228 Date d'inscription jeudi 17 avril 2008 Statut Membre Dernière intervention 11 février 2016 - 16 févr. 2009 à 15:43
zebulon2503 Messages postés 1228 Date d'inscription jeudi 17 avril 2008 Statut Membre Dernière intervention 11 février 2016 - 16 févr. 2009 à 16:43
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 !
A voir également:

2 réponses

Utilisateur anonyme
16 févr. 2009 à 15:58
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
0
zebulon2503 Messages postés 1228 Date d'inscription jeudi 17 avril 2008 Statut Membre Dernière intervention 11 février 2016 110
16 févr. 2009 à 16:11
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...
0
Utilisateur anonyme
16 févr. 2009 à 16:34
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 
'
0
zebulon2503 Messages postés 1228 Date d'inscription jeudi 17 avril 2008 Statut Membre Dernière intervention 11 février 2016 110
16 févr. 2009 à 16:43
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 !
0