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
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
A voir également:
- Vba excel fonction
- Excel fonction si et - Guide
- Liste déroulante excel - Guide
- Fonction moyenne excel - Guide
- Aller à la ligne excel - Guide
- Word et excel gratuit - Guide
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
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).
la fonction toto que retourne t-elle comme resultat: la somme de toutes les valeurs
et connais tu les dimensions de ton tableau (range).
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
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
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
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
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
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
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
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
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
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
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
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
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
18 juin 2012 à 10:27
Bonjour et merci de votre aide
je vais faire ca et je vous tiens au courant
cordialement
je vais faire ca et je vous tiens au courant
cordialement
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
18 juin 2012 à 21:00
je vous en prie.