OVH Cloud OVH Cloud

clarifier mon code ? sub ? function ? je m'y perd....

4 réponses
Avatar
Alfred WALLACE
Bonjour :-)

j'ai une sub toto() .... end Sub qui est tres long....

J'aurais aim=E9 facilit=E9 la lecture de ces lignes en mettant une
partie du code
dans des routines....

je pensais que cel=E0 s'emboitais comme =E7=E0 :

Sub Principal()
.=2E..
.=2E.
.=2E.
Fonct_xxxx
.=2E.
.=2E.
.=2E.
end Sub

function Fonct_xxx()
.=2E.
.=2E.
End Function

bon, on dirait que c'est pas =E7=E0.... comment je peux d=E9placer des
blocs de code
en les appelant simplement par leur nom, pour =E9claircir mon code ??

Merci

Jos=E9

4 réponses

Avatar
CAP2
Salut,

Sub princ()

call Test

End Sub

'--------------

Sub Test()
zzzzzzzzz
End Sub


Tu peux même te passer d'écrire Call, mais pour la relecture c'est pas plus
mal de l'avoir...

Ca marche ?

CAP2
Avatar
JLuc
Bonjour :-)

j'ai une sub toto() .... end Sub qui est tres long....

J'aurais aimé facilité la lecture de ces lignes en mettant une
partie du code
dans des routines....

je pensais que celà s'emboitais comme çà :

Sub Principal()
....
...
...
Fonct_xxxx
MaVariable = Fonct_xxxx 'Si c'est une fonction, elle doit renvoyer

quelque chose
Sinon, il faut declarer une Sub

...
...
...
end Sub

function Fonct_xxx()
Sub Fonct_xxxx()


...
...
End Function

bon, on dirait que c'est pas çà.... comment je peux déplacer des
blocs de code
en les appelant simplement par leur nom, pour éclaircir mon code ??

Merci

José



--
JLuc

Avatar
Alfred WALLACE
CAP2 wrote:
Salut,

Sub princ()

call Test

End Sub

'--------------

Sub Test()
zzzzzzzzz
End Sub


Tu peux même te passer d'écrire Call, mais pour la relecture c'est pa s plus
mal de l'avoir...

Ca marche ?

CAP2


ben, j'ai crée des sub.

dans un module à part.

Mais je ne vois pas trop la différence.

Merci.
José

Avatar
CAP2
Salut,

ne pédalerait-on pas dans la semoule ? (Note que c'est de saison ;o))

Si au sein d'une Sub tu veux lancer l'exécution d'une autre Sub, il faut
mettre ça en place comme ça :

Sub princ()

call Test

End Sub

'--------------

Sub Test()
zzzzzzzzz
End Sub

avec ta Sub Test dans le même module ou un autre, peu importe...


Fais attention à une chose, une Sub mets en place un traitement, tandis
qu'une Function a pour but de renvoyer un résultat (comme une fonction
Excel...).

Donc si dans une Sub tu veux utiliser une Function qui va te calculer
quelquechose en fonction de tes arguments, il faut stocker la valeur
résultant de ta fonction dans une variable...

Ca donne un truc du style :

Sub princ()
Dim resultat

resultat=Test(arguments)

End Sub

'--------------

Function Test(ici tes arguments de fonction)

Test = ici le calcul que ta fonction doit mettre en place

End Function



Tu vois mieux la différence entre Sub et Function ?

CAP2