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   -
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 !

2 réponses

  1. 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
    1. zebulon2503 Messages postés 1229 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
  2. 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
    1. zebulon2503 Messages postés 1229 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