retourner une valeur

  • Initiateur de la discussion Munchkin
  • Date de début
M

Munchkin

Guest
Bonjour tout le monde

je cherche à savoir comment retourner la valeur d'une variable dans d'une fonction vers une autre

je m'explique par un exemple



Sub premiere()
là je voudrais utiliser la valeur de i de la deuxième sub
end sub


sub deuxième()
dim i as integer
i = 1
là je voudrais renvoyé la valeur de i dans la premiere sub pour l'utiliser
end sub

comment faire? merci

The Munchkin
 
P

Pascal76

Guest
Salut tout le monde

oui Munchkin ça marche aussi pour passer des variables d'un module vers des UF
Mais il faut déclarer tes variables Public dans un module et tout en haut avant tes macros.

Exemple :

Public i as integer

Sub premiere()
Ton code
end sub


sub deuxième()
Ton code
end sub

Bon courage

Pascal
 
@

@+Thierry

Guest
Bonjour Chris, Arnaud, Munchkin, le Forum

Pour que ce soit clair, Munchkin, voici deux méthodes :



METHODE VARIABLE PUBLIC
Dim VariablePublique As Integer

Sub MacroVariablePublique1()
VariablePublique = 1
End Sub

Sub MacroVariablePublique2()
MsgBox VariablePublique
End Sub

On notera ici que si on lance la MacroVariablePublique2 avant la MacroVariablePublique1 le message retournera "Zéro" ce qui est normal puisque la VariablePublique n'a pas été initialisée... Par contre si on fait tourner les macro dans l'ordre le message sera "Un"...




METHODE TRANFER/PASSAGE D'ARGUMENT
Sub MacroPassArgument1()
Dim VariableArgument As Integer
VariableArgument = 1
Call MacroPassArgument2(VariableArgument)
End Sub

Sub MacroPassArgument2(i As Integer)
MsgBox i
End Sub

On notera qu'ici la MacroPassArgument2 ne peut être lancée seule puisque elle est argumentée et lancée par MacroPassArgument1...

C'est deux méthodes sont très différentes et selon le cas de figure ne peuvent être utilisées indifféremment...

Bon Aprem
@+Thierry
 
P

Pascal76

Guest
Re

Dis Thierry, il me semble que dans ta METHODE VARIABLE PUBLIC
vu que tu déclares tavariable par : Dim VariablePublique As Integer elle n'est "publique" que dans le même module et donc qu'il faut la declarer Public VariablePublique As Integer pour qu'elle soit publique dans tout le classeur.

Dis moi si je me trompe

Pascal
 
M

Munchkin

Guest
Pour ton premier exemple, Thierry, est ce que ca ne marche pas si c'est les deux SUB sont dont deux pages de codes différentes?

en fait c'est des sub pour deux pages différentes


par contre pour ton deuxième exemple j'ai plutot ca:


Sub MacroPassArgument1()
Dim VariableArgument As Integer
VariableArgument = 1
End Sub

Sub MacroPassArgument2(i As Integer)
call Sub MacroPassArgument1
MsgBox i
End Sub

ca marche pas non plus

grrrrrrrrrrrrrrrrrrrrrrrr je suis nul non?
Merci pour votre support

The Munchkin
 
@

@+Thierry

Guest
Bonjour Pascal, Munchkin, Le Forum

Non Pascal, dans la METHODE VARIABLE PUBLIC c'est bien entendu délibérément que je DIM cette variable. Si j'avais voulu faire une déclaration PUBLIC j'aurai évidemment fait les précisions adéquates. Ici, pour cet exemple, il n'est nullement nécessaire de déclarer cette variable As Public.

Non Munchkin, reprends étape par étape la METHODE TRANFER/PASSAGE D'ARGUMENT, et compare bien avec ce tu as écrit. Tu es "à l'envers", la MacroPassArgument2, ne peut en aucun cas faire appel à MacroPassArgument1.... Mais une fois que tu mettras de l'ordre, OUI ce passage d'argument peut se faire entre différents modules standards.

Bonne Journée et.................... ALLEZ Monaco !!!!
@+Thierry
 
M

Munchkin

Guest
c'est drole Thierry car ca n'a pas marché qu'n mettant Public

Sub MacroPassArgument1()
call Sub MacroPassArgument1
MsgBox i
End Sub



Puclic VariableArgument As Integer


Sub MacroPassArgument2(i As Integer)
VariableArgument = 1
End Sub

Bon peut etre il y quelqoue chose qu'on ne voit pas mais le plus important ppour moi c'est que mon problème est résolu :)))))))))

Merci

et comme t'as dit :
Bonne Journée et.................... ALLEZ Monaco !!!!
 

Discussions similaires

Statistiques des forums

Discussions
314 197
Messages
2 107 040
Membres
109 743
dernier inscrit
TROMBATI