Vba excel fonction
amine69500
Messages postés
471
Statut
Membre
-
fais27 Messages postés 45 Statut Membre -
fais27 Messages postés 45 Statut Membre -
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
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:
- Vba excel fonction
- Fonction si et excel - Guide
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Fonction moyenne excel - Guide
- Excel compter cellule couleur sans vba - Guide
5 réponses
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).
la fonction toto que retourne t-elle comme resultat: la somme de toutes les valeurs
et connais tu les dimensions de ton tableau (range).
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
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
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
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
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
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
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question