IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

comment renvoyer deux reponses a partir d'une fonction?


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    181
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 181
    Points : 79
    Points
    79
    Par défaut comment renvoyer deux reponses a partir d'une fonction?
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    function Ma_Fonction(...., ....) as long , as long
    end function
    svp comment je peux faire cela?
    merci

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 537
    Points
    5 537
    Par défaut
    Bonjour,

    tu peux utiliser plusieurs procédés, mais le plus pratique est delui de l'utilisation d'une structure.

    Voilà un exemple àanalyser, comprendre et adapter à ton/tes cas... (ce n'est qu'un exemple de mécanisme)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    Private Type toto
      nom As String * 20
      prenom As String * 40
      age As Integer
    End Type
     
    Private Sub Command1_Click()
      Dim quoi As Integer
      quoi = 1
      MsgBox lancons(quoi).age & vbCrLf & lancons(quoi).prenom & vbCrLf & lancons(quoi).nom
      quoi = 2
      MsgBox lancons(quoi).age & vbCrLf & lancons(quoi).prenom & vbCrLf & lancons(quoi).nom
      quoi = 600
      MsgBox lancons(quoi).age & vbCrLf & lancons(quoi).prenom & vbCrLf & lancons(quoi).nom
    End Sub
     
    Private Function lancons(qui As Integer) As toto
      Select Case qui
        Case 1
          lancons.nom = "dupont"
           lancons.prenom = "jean"
           lancons.age = 5
        Case 2
          lancons.nom = "durand"
           lancons.prenom = "pierre"
            lancons.age = 23
        Case Else
          lancons.nom = "?"
           lancons.prenom = "?"
            lancons.age = 0
        End Select
    End Function

  3. #3
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 919
    Points
    55 919
    Billets dans le blog
    131
    Par défaut
    Bonjour

    Il serait peut-être préférable d'utiliser une fonction qui renvoie la ligne et une autre qui renvoie la colonne...

    Tu pourrais aussi renvoyer un tableau, mais je trouve que ce serait lourd pour deux données.

    Tu peux alors utiliser une fonction qui renvoie du texte, et tu sépares tes données avec, par exemple, le ;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Function Coordonnees(...) as string
        dim Ligne as long
        dim Colonne as long
     
        ...
        ...
        Coordonnees = ligne & ";" & colonne
    End Function
    Tu peux alors "splitter" ta réponse
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    dim Reponse as string
    dim Ligne as long
    dim Colonne as long
     
    Reponse = coordonnees(...)
    ligne = split(coordonnees,";")(0)
    colonne = split(coordonnees,";")(1)

  4. #4
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    181
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 181
    Points : 79
    Points
    79
    Par défaut
    Merci bcp pour vos solutions, en fait les deux feront l'affaire.
    merci une autre fois

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment arreter un programme a partir d'une fonction?
    Par xslert dans le forum Débuter
    Réponses: 15
    Dernier message: 26/05/2009, 20h14
  2. Réponses: 1
    Dernier message: 23/09/2008, 11h41
  3. [C#] Comment lancer un .doc à partir d'une WebForm ?
    Par patlemagnifik dans le forum ASP.NET
    Réponses: 10
    Dernier message: 06/01/2006, 23h38
  4. Remplir deux listes select à partir d'une autre
    Par Raduris dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 23/11/2005, 15h29
  5. Réponses: 5
    Dernier message: 15/07/2005, 11h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo