Variable VB Excel

Résolu
zebulon2503 Messages postés 1228 Date d'inscription   Statut Membre Dernière intervention   -  
zebulon2503 Messages postés 1228 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 !
A voir également:

2 réponses

Utilisateur anonyme
 
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   Statut Membre Dernière intervention   110
 
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
 
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   Statut Membre Dernière intervention   110
 
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