inge68
Messages postés42Date d'inscriptionlundi 25 février 2008StatutMembreDernière intervention24 février 2011
-
29 juil. 2008 à 12:32
Kevin.Ory
Messages postés840Date d'inscriptionmercredi 22 octobre 2003StatutMembreDernière intervention 7 janvier 2009
-
29 juil. 2008 à 19:11
Bonjour tout le monde, j'ai 2 procedure
Sub procedure1( )
dim a as long
a=3
call procedure2
msgbox("b=" & b & ".") ' pareil il connait pas la valeur de b qui est declaré dans la procedure2
End
Sub procedure2( )
dim b as long
b= a +1 ' Ici il connait pas la valeur de a qui est pourtant declaré dans la procedure1
call procedure1
End
en fait quand je declare mon coef dans une premiere procedure, ma deuxieme ne le reconnait pas.
y a t 'il un moyen pour communiquer entre les 2 procedures. ca parait simple mais j'ai galeré toute la matiné a trouver une solution
Kevin.Ory
Messages postés840Date d'inscriptionmercredi 22 octobre 2003StatutMembreDernière intervention 7 janvier 200911 29 juil. 2008 à 12:50
Mmh, tu est un débutant toi
Il faut passer des arguments et retourner une valeur :
Sub procedure1( )
Dim a As Long
Dim b As Long
a = 3
b = Call procedure2(a)
msgbox("b=" & b & ".")
End
Function procedure2(a As Long) As Long
Dim b As Long
b = a +1
procedure2 = a + 1
End
Une variable déclaré dans une fonction (ou procédure) n'est accessible que dans le bloc ou elle est déclaré (que dans la fonction donc)
Sinon, tu peux déclarer des variables en dehors des fonctions.
Private a As Long
Private b As Long
Sub procedure1( )
a = 3
Call procedure2
msgbox("b=" & b & ".")
End
Sub procedure2()
b = a +1
End
Ceci est pour du .NET, mais ça doit être du même pour VB6:
Private = accessible que dans la classe
Friend = accessible que dans le projet
Public = accessible depuis n'importe ou (depuis un autre programme)
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 29 juil. 2008 à 13:27
salut,
autre petite correction kevin ^^
Sub procedure1( )
Dim a As Long
Dim b As Long
a = 3
b = Call procedure2(a)
msgbox("b=" & b & ".")
End
devient
Sub procedure1( )
Dim b As Long
b = procedure2(3)
msgbox "b=" & b & "."
End
(et en VB6 on passera BYVAL. contrairement à dotnet, VB6 est en BYREF par défaut)
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 29 juil. 2008 à 14:29
... kevin a écrit ceci : Function procedure2(a As Long) As Long
donc ta pivot devient Sub Pivot(byval C as long)
et tu appelles par Call Pivot(C)
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Vous n’avez pas trouvé la réponse que vous recherchez ?
inge68
Messages postés42Date d'inscriptionlundi 25 février 2008StatutMembreDernière intervention24 février 2011 29 juil. 2008 à 14:14
c'est toujours moi, en fait mon vrai probleme est le suivant l'exemple ci dessus etait juste un exemple pour vous expliquer ce que je veux
j'ai deux procedure et non pas des fonctions et le probleme c'est que le coefficient commun entre les 2 et C.
la premiere : mise_en_place( )
...
Dim C as Long
C = 5 Do While Cells(LigneF2, ColonneF2) <> ""
Sheets("Feuil1").Cells(LigneF1, ColonneF1).Value = Cells(LigneF2,ColonneF2).Value
LigneF1 = LigneF1 + 1
ColonneF2 = ColonneF2 + 4
Call pivot
C = C + 4
Loop
......
pivot( )
.....
For i = 1 To n
Sheets("Feuil2").Cells(i, C).Value = x(i) '(x est calculé auparavant mais c'est pas important dans à savoir)
Next
.....
Comment je pourrais utiliser la valeur de C declaré dans la procedure mise en place dans la procedure Pivot.
Kevin.Ory
Messages postés840Date d'inscriptionmercredi 22 octobre 2003StatutMembreDernière intervention 7 janvier 200911 29 juil. 2008 à 18:32
"autre petite correction
kevin ^^"
C'est plus une simplification qu'une correction Je voulais garder les variables pour bien montrer le principe Mais je suis évidement tout à fait d'accord
On peut même faire plus court:
Sub procedure1( )
msgbox "b=" & procedure2(3) & "."
End