Bonjour ;
J’ai une macro A qui fait collecte des données sur une feuille Excel et fait apparaître un userform de choix, qui lance d’autre macro B et C.
J’aimerai récupérer mes données de A dans B et C
Comment dois-je faire?
Version imprimable
Bonjour ;
J’ai une macro A qui fait collecte des données sur une feuille Excel et fait apparaître un userform de choix, qui lance d’autre macro B et C.
J’aimerai récupérer mes données de A dans B et C
Comment dois-je faire?
Bonjour Spoyet
Tu as deux solutions,
Soit dans un module, Au dessus du premier sub tu definis des variables publiques
Elles sont utilisables de n'importe quelle macro. Dans ta premiere macro tu les mets à jourCode:Public Nomvar1 as String, Nomvar2 as double, Nomvar3 as integer
Sinon , dans l'userform tu crees des label avec en option visible à False
tu les charges dans ta premiere macro, elles sont recuperables tant que l'usf reste en memoire
Bonne journée
sinon tu passes les paramètres A,B,C au lancement de ton autre macro dpuis la macro d'origine
et la macro appellé débute comme ça :Code:macro A B C
Code:Sub Macro(byval A as integer,byval B as string,byval C as boolean)
Merci pour la réponse;
Pour les variable simple comme "nblab" ça passe mais pour "nbressai(100)"
Voila mes lignes de prog
"En début de module"
"En début de la première macro et du userform"Code:Public nblab, nbressai(100), nbessai
Code:Static nbressai(100)
re:
pourquoi static, ce n'est pas utile, le tableau etant deja defini et dimenssionné dans puplic
Bon apres midi
De toute façon que ce soit Dim ou Static ça je ne retrouve pas mes valeurs
re:
j'ai fait un essai, public essai(100) dimensionne automatiquement une table de 100 postes
il n'y a aucun besoin de redefinir le tableau. la redefinition du tableau, remet automatiquement les valeur à zero, donc normal que tu perdes tout !!!
comme je t'ai dit
au debut d'un module, 1ere ligne, en dehors d'un sub
ensuite dans n'importe quelle procedureCode:Pulic tablo(100) as variant
le tableau est rempliCode:
1
2 for i = 1 to 15 : tablo(i) = range("A" & I):next i for i= 16 to 30: tablo(i) = tange("B" & I-15) : next i
dans une autre procédure
te donnera les 2 valeurs memorisées précedemmentCode:msgbox tablo(10) & " " & tablo(25)
pas de dim, pas de static, pas de redim, ton tableau est defni par Public
Bonne soirée, à + sur le forum