Mettre du code sous forme de fonction ou sub

Daydayer Messages postés 201 Date d'inscription mercredi 1 décembre 2004 Statut Membre Dernière intervention 13 août 2005 - 25 mai 2005 à 09:53
cs_drahcir Messages postés 745 Date d'inscription mardi 30 novembre 2004 Statut Membre Dernière intervention 15 septembre 2009 - 26 mai 2005 à 09:26
bonjour le forum!

bon j'ai le code ci-dessous:

If SelectedData = "" Then
SelectedData = "A" + CStr(Row) + ":P" + CStr(Row) 'selects the data of the column A to P
Count = Count + 1
Else
SelectedData = SelectedData + ",A" + CStr(Row) + ":P" + CStr(Row)
Count = Count + 1
If Count = CountLimit Then
Call PasteData(SelectedData, SheetOfSearch, LastResultLine)
'reinitializes the variable
LastResultLine = LastResultLine + Count
SelectedData = ""
Count = 0
End If
End If

ce code est exécuté pour chaque mois de l'année (soit 12 fois...). j'aimerais savoir comment créer une fonction ou sub afin de la mettre dans un module, ce qui réduirait le nombre de ligne dans mon form... et ferait moins chargé!

Ce bout de code se trouve dans une boucle for, avec Row qui défile;
Je pense que les paramètres à lui filer seraient: Row, SelectedData,Count, LastResultLine. Pour CountLimit je sais pas (c'est une variable fixe que j'initialise au début du form).
Je vous demande votre aide parce que je ne sais pas comment faire cette fonction, étant donné les lignes "LastResultLine LastResultLine + Count" et "Count Count + 1". Est-ce qu'il faut que cette fonction renvoie les valeurs de LastResultLine et Count, vu que je dois m'en servir dans la boucle (leur valeur change)? et si oui, faut renvoyer 2 param par la fonction et c'est pas possible je crois...

merci de votre aide.

Daydayerement Vôtre

7 réponses

cs_drahcir Messages postés 745 Date d'inscription mardi 30 novembre 2004 Statut Membre Dernière intervention 15 septembre 2009 4
25 mai 2005 à 10:44
Salut

Pourquoi tu n'instancies pas deux variables globales "LastResultLine" et "Count" que tu mets à jour dans ta fonction. A chaque appel de celle-ci tu récupérera sa dernière valeur que tu pourras à nouveau modifier.

C'est une idée après je ne sais pas ce que tu veux faire exactement...
0
Daydayer Messages postés 201 Date d'inscription mercredi 1 décembre 2004 Statut Membre Dernière intervention 13 août 2005
25 mai 2005 à 11:37
c'est une bonne idée... mais alors je ne passe plus ces deux var en param à ma fonction? et pour les autres var,je les passe en param celles-ci, non?


et juste une autre question: j'ai besoin d'une fonction ou d'une sub,


a priori, si mes var sont public, je n'ai pas besoin de retourner de valeurs donc cela peut être une sub....

qu'en penses tu?

Daydayerement Vôtre
0
cs_drahcir Messages postés 745 Date d'inscription mardi 30 novembre 2004 Statut Membre Dernière intervention 15 septembre 2009 4
25 mai 2005 à 11:48
Tu conserves les autres paramètres en entrée. Comme tu ne renvoies aucune valeur Sub me semble bien approprié.

Public Sub taSub (byval Row as string, byval Selected as string)
'ton code
End Sub

Voilà ce que j'en pense.
Tiens moi au courant.
0
Daydayer Messages postés 201 Date d'inscription mercredi 1 décembre 2004 Statut Membre Dernière intervention 13 août 2005
25 mai 2005 à 15:37
ok, je vais essayer. peux tu me dire par contre à quoi sert le 'ByVal'? je sais qu'il ya aussi 'ByRef', mais je ne connais l'utilité de ces mots...

Daydayerement Vôtre
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_drahcir Messages postés 745 Date d'inscription mardi 30 novembre 2004 Statut Membre Dernière intervention 15 septembre 2009 4
25 mai 2005 à 15:55
ByVal c'est un mot clé qui te permet de déclarer le nom de ta variable ainsi que son type.

ByVal NomVariable As SonType
0
Daydayer Messages postés 201 Date d'inscription mercredi 1 décembre 2004 Statut Membre Dernière intervention 13 août 2005
26 mai 2005 à 09:17
bonjour!
merci pour ta réponse.
suite de ma question sur ByVal: alors pourquoi des fois on ne met pas ByVal ds la déclaration des var, même dans d function ou sub?

Daydayerement Vôtre
0
cs_drahcir Messages postés 745 Date d'inscription mardi 30 novembre 2004 Statut Membre Dernière intervention 15 septembre 2009 4
26 mai 2005 à 09:26
Salut

tu veux dire à l'intérieur de Function et Sub?
C'est vrai qu'en vb (contrairement au csharp par exemple), la syntaxe de la déclaration de variables est différente pour les paramètres à celle des variables locales.
Je n'en connaît pas la raison mais une fois que tu es habitué à cette syntaxe ça ne pose pas de problèmes.
Peut-être que des gens plus expérimentés que moi pourront t'en donner la raison.

@+
0
Rejoignez-nous