Vba excel fonction

Fermé
amine69500 Messages postés 422 Date d'inscription lundi 8 juin 2009 Statut Membre Dernière intervention 25 août 2013 - 14 juin 2012 à 21:52
fais27 Messages postés 45 Date d'inscription samedi 14 avril 2012 Statut Membre Dernière intervention 27 juin 2012 - 18 juin 2012 à 21:00
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
A voir également:

5 réponses

fais27 Messages postés 45 Date d'inscription samedi 14 avril 2012 Statut Membre Dernière intervention 27 juin 2012 1
14 juin 2012 à 22:14
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).
0
amine69500 Messages postés 422 Date d'inscription lundi 8 juin 2009 Statut Membre Dernière intervention 25 août 2013 12
Modifié par amine69500 le 14/06/2012 à 22:33
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
0
fais27 Messages postés 45 Date d'inscription samedi 14 avril 2012 Statut Membre Dernière intervention 27 juin 2012 1
Modifié par fais27 le 14/06/2012 à 23:13
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
0
amine69500 Messages postés 422 Date d'inscription lundi 8 juin 2009 Statut Membre Dernière intervention 25 août 2013 12
Modifié par amine69500 le 14/06/2012 à 23:36
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
0
fais27 Messages postés 45 Date d'inscription samedi 14 avril 2012 Statut Membre Dernière intervention 27 juin 2012 1
15 juin 2012 à 12:37
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
0

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

Posez votre question
amine69500 Messages postés 422 Date d'inscription lundi 8 juin 2009 Statut Membre Dernière intervention 25 août 2013 12
18 juin 2012 à 10:27
Bonjour et merci de votre aide

je vais faire ca et je vous tiens au courant

cordialement
0
fais27 Messages postés 45 Date d'inscription samedi 14 avril 2012 Statut Membre Dernière intervention 27 juin 2012 1
18 juin 2012 à 21:00
je vous en prie.
0