Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Partage de variable entre procédure...

  • Initiateur de la discussion Initiateur de la discussion CDavid2007
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

C

CDavid2007

Guest
Salut à tous,

Malgrés mes recherches dans le forum je n'ai pas trouvé d'infos concernant mon problème :

Dans mon code VBA, j'ai déclaré un tableau de type "DIM Test (1 to 99)" dans la partie "Déclaration" du code de ma première feuille. Je souhaiterais partager ce tableau dans une procédure SUB d'un module et je ne sais pas comment faire !!

J'ai tenté d'inclure une instruction "Public Test ()" dans la partie "Déclaration" du module correspondant. J'ai tenté aussi "Public Test ()" dans la partie "Déclaration" de la feuille. Mais cela ne fonctionne pas. Pourriez-vous m'aider SVP ?
 
Re : Partage de variable entre procédure...

bonjour,
Extrait de l'aide VBA, tu as la réponse :
"Les variables déclarées à l'aide de l'instruction Dim au niveau module sont disponibles pour toutes les procédures du module. Au niveau procédure, les variables ne sont disponibles qu'au sein de la procédure."
En résumé, déclares ton tableau avant la première procédure sub.
A+
kjin
 
Dernière édition:
Re : Partage de variable entre procédure...

Bonjour,

Il faut faire la déclaration dans un module:

Public Test(1 To 99)

Le tableau sera reconnu dans les feuilles.

On peut aussi passer le tableau en parametre lors de l'appel de la procédure.


Code:
Sub essai()
  Dim test(1 To 99)
  test(6) = 55
  maproc test
End Sub

Sub maproc(p)
  MsgBox p(6)
End Sub


JB
 
Dernière édition:
Re : Partage de variable entre procédure...

bonjour CDavid 2007

j'ai testé ceci qui semble correspondre a ce que tu souhaites

Code:
Public tableau(1 To 99) As String
 
Sub test()
For n = 1 To 99
 tableau(n) = n
Next n
End Sub
 
Sub test1()
Call test
For n = 1 To 99
 MsgBox (tableau(n))
Next
End Sub

Edit: Salut kjin Salut BOISGONTIER
 
Re : Partage de variable entre procédure...

Salut à tous,

Merci pour vos réponses. En fait, le tableau est déclaré dans la partie "Déclaration" du code de la feuille car ce tableau est destiné à être utilisé dans une procédure "Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)".

A une réponse au double-clic sur une cellule de la feuille, ce tableau est utilisé dans la procédure "Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)" qui doit donc se trouver obligatoirement dans le code de la feuille et pas dans un module.

Ce que je voudrais c'est pouvoir utilisé ce même tableau dans une procédure SUB d'un module. Merci pour votre aide....
 
Re : Partage de variable entre procédure...

Bonjour à tous,

CDavid2007, as tu essayé de déclarer ta variable en entête du "Module1" par exemple et en tant que variable Globale

Code:
Option Explicit
Global Test(1 To 99)

A+
 
Re : Partage de variable entre procédure...

Re

Salut a tous

Dans cet exemple:

Le double clic en feuil1 initialise le tableau déclaré en module 1, lit le 1er element et lance la macro test1 du module 1 qui enumere tous les elements du tableau
 

Pièces jointes

Re : Partage de variable entre procédure...

Merci PierreJean,

Ton exemple est suffisement explicite pour que je puisse modifier mon code et faire les modifs au niveau de la déclaration des variables... En fait voilà ce qui m'intéresse, c'est de pouvoir, par exemple, faire :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Call test
MsgBox ("lecture du 1er element du tableau declaré dans Module 1 : tableau = " & tableau(1))
Call test1
for x = 1 to 99
cells( x , 1 ) = x + 5000
next x
End Sub

Merci à tous...
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
1
Affichages
211
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…