Vba excel fonction

Bonjour,

je souhaiterais savoir comment je pourrais faire pour appliquer une boucle

qui dans un premier temps va me permettre de compter le nombre de ligne d'un tableau donc les lignes du tableau A1:C1 jusqua A3:C3,
ensuite recuperer les valeurs des lignes je m'explique :

la colonne A = la variable a
la colonne B = la variable b
la colonne C = la variable c

ma fonction

public function toto(a as string, b as string, c as string)

toto = a+b+c

end function

donc comment je pourrais faire pour appliquer la fonction pour chaque ligne
a chaque fois en saute une ligne

merci de votre aide

cordialement

5 réponses

  • Votes
  • Date
  • Date décroissante
  1. bonsoir,
    la fonction toto que retourne t-elle comme resultat: la somme de toutes les valeurs
    et connais tu les dimensions de ton tableau (range).
    1. bonsoir et merci de votre aide

      toto retourne un string

      non je connais pas les dimensions de mon tableau

      j'ai trouvé cette methode, mais je sais pas comment l'appliquer a mon probleme

      exemple:

      Sub BouclesForNextImbriquées()

      Dim DerniereLigne As Byte
      DerniereLigne = Range("A3").End(xlDown).Row
      Dim NbreDeLignes As Byte
      NbreDeLignes = DerniereLigne - 2
      ReDim MonTableau(NbreDeLignes, 4)
      Call AffecterValeursTableau(NbreDeLignes)

      End Sub

      Sub AffecterValeursTableau(DerniereLigneTableau)
      Dim CompteurLignes As Byte
      Dim CompteurColonnes As Byte
      For CompteurLignes = 1 To DerniereLigneTableau
      For CompteurColonnes = 1 To 4
      MonTableau(CompteurLignes, CompteurColonnes) = _
      Cells(CompteurLignes + 2, CompteurColonnes + 1)
      Next CompteurColonnes
      Next CompteurLignes
      End Sub

      cordialemnt
      1. ce string que ce qu'il represente
        d'apres cet exemple ta fonction retourne un tableau de valeurs
        la plage de cellules c quoi a1:c3
        en supposant que la plage contient un entete de ligne qui contient les champs

        Sub BouclesForNextImbriquées()

        Dim DerniereLigne As Byte
        DerniereLigne = Range("a1:c3").End(xlDown).Row (=3)
        Dernierecol = Range("a1:c3").End(xlDown).column "je ne suis pas sur" (=3)
        Dim NbreDeLignes As Byte
        NbreDeLignes = DerniereLigne - 1
        NbreDecol = Dernierecol
        ReDim MonTableau(NbreDeLignes, NbreDecol )
        Call AffecterValeursTableau(NbreDeLignes,NbreDecol)

        End Sub

        Sub AffecterValeursTableau(DerniereLigneTableau,Dernierecoltab)
        Dim CompteurLignes As Byte
        Dim CompteurColonnes As Byte
        For CompteurLignes = 1 To DerniereLigneTableau
        For CompteurColonnes=1 to Dernierecoltab
        MonTableau(CompteurLignes, CompteurColonnes) = _
        Cells(CompteurLignes + 1, CompteurColonnes)
        Next CompteurColonnes
        Next CompteurLignes
        End Sub
        1. c vrai desolé c'est des valeurs c'est une erreur de ma part, car mon vrai probleme c'est avec un tableau qui contient que des string, la je posé la question pour savoir juste la methode a utilisé et aprés l'appliquer a mon vrai probleme

          sinon mon tableau

          a1 c1 se sont les entetes du tableau

          le tableau contients que des string

          et ma fonction est composé de plusieurs variables c'est une dll créer sous c++ que j'appel depuis vba

          donc pour appliquer cette fonction il font lui donne les valeurs de ses variables
          et donc pour appliquer la fonction pour chaque ligne
          je souhaiterais créer une boucle qui li la ligne et applique la fonction

          pour chaque ligne

          mon code

          public function toto(a As string ,aAs string ,c As string) As string

          ....

          end function

          sub test()

          dim a as string
          dim b as string
          dim c as string

          ' pour l'instant j'arrive a lire que la 1 er ligne

          a = Feuil2.Range("A2").Value
          b = Feuil2.Range("B2").Value
          c = Feuil2.Range("C2).Value

          toto(a,b,c)

          end sub

          et ca marche super

          mais mon tableau contient plusieurs ligne

          merci

          cordialement
          1. bonjour,
            si tu veux parcourir les valeurs d'une ligne

            public function toto() As string
            dim s as string
            derlig 'indice de la derniere ligne de ta plage range calculé plus haut
            dercol 'indice de la derniere colonne de ta plage range
            dim tab(derlig-1) as string 'si indice tab commence à 1 sinon derlig-2 si comm à 0
            for j=2 to derlig
            s="" 'initialiser le s
            for i=1 to dercol
            s=s+cells(j,i)
            next i
            toto=s 'pour chaque ligne
            tab(j-1)=s ' si tu veux creer un tab qui contient le resultat pour chaque ligne cad concatenation des valeurs de la ligne et si indice du tab commence à 1 sil commeence à 0 c j-2
            ceci est commentaire
            next j

            end function

            j'espere d'avoir pu t'aider
            cordialement
        2. Bonjour et merci de votre aide

          je vais faire ca et je vous tiens au courant

          cordialement
          1. je vous en prie.