supinfo
Ouverture de  SUPINFO USA à San Francisco en 2008. Des études en informatique en Californie à un tarif abordable ! Inscrivez-vous dès maintenant !
supinfo
Connexion :

Recherche

  
   Tout| Actus| Télécharger| Comparateur de prix| Dossiers| Forums| Jeux| Google

4 messages
ok

[RESOLU] Macro - passage de variables dans 2 procédures

Bonjour,
Dans mon projet VBA, j'ai 2 formes :
Form1_form et Form2_form
Dans chaque formes, il y a une procédure :
Form1_form.procedure1 et Form2_form.procedure2
Mon but est de faire passer 2 variables de la procédure 1 dans la procédure 2.
Avec 1 variable, ça fonctionne :
[cpp]Sub procedure1()
Dim test as string
test = "abc"
Form2_form.procedure2(test)
end sub[/cpp]

[cpp]Sub procedure2(var1 as string)
msgbox(var1)
end sub[/cpp]

Le problème, est que quand je reprends cet exemple pour 2 variables, ça ne fonctionne plus :

[cpp]Sub procedure1()
Dim test, test1 as string
test = "abc"
test1 = "def"
Form2_form.procedure2(test, test1)
end sub[/cpp]

[cpp]Sub procedure2(var1, var2 as string)
msgbox(var1)
msgbox(var2)
end sub[/cpp]

J'ai tout essayé et franchement, sans succès, est-ce que qqn pourrait m'aider ?!?
 
 
essai avec ça :
[fixed]

Sub procedure2(var1 as string, var2 as string)
msgbox(var1)
msgbox(var2)
end sub
[/fixed]
 
 
Plusieurs problèmes :

[cpp]
Sub procedure1()
Dim test as string
test = "abc"
Form2_form.procedure2(test)
end sub
[/cpp]

Toujours utiliser Call avant l'appel d'une procédure.

[cpp]
Sub procedure2(var1 as string)
msgbox(var1)
end sub
[/cpp]

Définir la façon dont VB doit gérer le paramèttre :

- ByVal : par valeur (non modifiée), équivaut à la valeur de la variable,
- ByRef : par référence (à modifier), équivaut à l'adresse de la variable.

Tu dois donc mêttre ByVal pour ton cas.

[cpp]
Sub procedure1()
Dim test, test1 as string
test = "abc"
test1 = "def"
Form2_form.procedure2(test, test1)
end sub
[/cpp]

Toujours typer ses variables, ici, test n'est pas une string mais une variant (8 bytes !) du donc faire :

[cpp]
Sub procedure1()
Dim test as string, test1 as string
test = "abc"
test1 = "def"
Call Form2_form.procedure2(test, test1)
end sub
[/cpp]

Tu as pour la procédure2, toujours le problème du ByVal, ByRef (par défaut c'est ByRef !) :

[cpp]
Sub procedure2(ByVal var1 as string, ByVal var2 as string)
msgbox var1
msgbox var2
end sub
[/cpp]
 
 
Salut à tous et merci beaucoup pour vos solutions qui fonctionnent à merveille !
 
 
 
4 messages
ok
 
Vous devez être connecté pour écrire un message !
 

 Sujets Similaires:


 
Clubic.com
 
Achetez-facile.com
 
Jeuxvideo.fr
 
neteco.com
 
mobinaute.com