comment renvoyer deux reponses a partir d'une fonction?

nsqualli

XLDnaute Junior
Bonjour,

j'ai une macro, qui va utiliser deux variables, une pour la ligne de debut et une autre pour la ligne de fin.

donc j'ai pensé a une fonction qui me retournera ces deux variable, mais je ne sais pas comment fair pour que la fonctionne me retourne les deux.

genre :

Code:
function Ma_Fonction(...., ....) as long , as long
end function

svp comment je peux faire cela?
merci
 

JNP

XLDnaute Barbatruc
Re : comment renvoyer deux reponses a partir d'une fonction?

Bonjour Nsqualli :),
Tout dépends de ce que tu veux faire des résultats. Si tu fait appel à ta fonction pendant le déroulement de la macro, il te suffit de rendre Public les variables, elles auront pas besoin d'être renvoyées par la fonction. Si c'est dans une feuille de calcul, c'est un peu plus génant car tu vas faire appel plusieurs fois à la fonction et tes variables publiques elles seront fixes (d'un autre côté, une cellule ne peux contenir qu'un seul résultat...). Si tu veux faire apparaître les 2 résultats dans la même cellule, tu peux les concaténer (exemple "Ligne 1 : Ligne 12"), ce qui ne t'empêche pas de les deconcaténer par une autre fonction si tu as besoin de les récupérer. Enfin, tu peux aussi faire renvoyer un tableau et récupérer la valeur 1 et la valeur 2 du tableau.
Joyeux Noël :cool:
 

nsqualli

XLDnaute Junior
Re : comment renvoyer deux reponses a partir d'une fonction?

non ça n'a aucun rapport avec les cellule.

je m'explique:

j'ai une feuille excel ou il y'a un planning pour chaque mois, et chaque planning est sur plusieurs lignes.

alors maintenant pour un traitement ou j'utilise cette feuille là, j'ai besoin de la ligne de debut du planning et celle de la fin en fonction du mois choisie(c'est dans une form que je choisie le mois)
 

JNP

XLDnaute Barbatruc
Re : comment renvoyer deux reponses a partir d'une fonction?

Re :),
Voici un exemple
Code:
Option Explicit
Public PremLigne As Integer, DerLigne As Integer ' La déclaration de tes variables est valable pour tout le fichier
Sub Affichage()
Run "DéterminationLignes" ' Lance ta sous macro
MsgBox (PremLigne & " : " & DerLigne) ' Affiche le résultat de ta sous macro
End Sub
Sub DéterminationLignes() ' Ta sous macro
PremLigne = 5 ' Là, tu mets le résultat de ton calcul, je ne sais pas ce que tu utilises avant pour la déterminer
DerLigne = 15 ' Idem pour ta dernière ligne
End Sub
Est-ce plus clair ?
Bonne soirée :cool:
 

Discussions similaires