Gestion des Range VBA Excel
yaya
-
Patrice33740 Messages postés 8561 Date d'inscription Statut Membre Dernière intervention -
Patrice33740 Messages postés 8561 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je cherche a faire une fonction excel qui permet de réaliser différents calcul. Cette formule a en paramètre 3 plage de cellule.
Pour cela j'ai utilisé l'editeur de code, cependant je n'arrive pas a récupérer les valeurs de mes plages.
Mes plages sont de différentes tailles (une colonnes, plusieurs lignes/ plusieurs colonnes, plusieurs lignes...)
J'ai réalisé des boucle for parcourir mes plages de calcul, mais je ne sais pas comment récupérer le valeur de mes cellules, j'ai essayé mais aucun succés (surout lorsuqe j'ai plusieurs colonnes), voici une partie du code que j'ai réalisée.
While indexR < RatesRange.Cells
'For each cell in parameter (Questions sheet)
While indexQ < QuestionRange.Cells
'IF value in cell(i) equals value in cell(questions sheet)
If RatesRange.Cells(indexR) = QuestionRange.Cells(indexQ) Then
sum = QuestionNbRange.Cells(indexQ)
nb = nb + 1
End If
indexQ = indexQ + 1
Wend
indexR = i + 1
Wend
merci de votre aide
je cherche a faire une fonction excel qui permet de réaliser différents calcul. Cette formule a en paramètre 3 plage de cellule.
Pour cela j'ai utilisé l'editeur de code, cependant je n'arrive pas a récupérer les valeurs de mes plages.
Mes plages sont de différentes tailles (une colonnes, plusieurs lignes/ plusieurs colonnes, plusieurs lignes...)
J'ai réalisé des boucle for parcourir mes plages de calcul, mais je ne sais pas comment récupérer le valeur de mes cellules, j'ai essayé mais aucun succés (surout lorsuqe j'ai plusieurs colonnes), voici une partie du code que j'ai réalisée.
While indexR < RatesRange.Cells
'For each cell in parameter (Questions sheet)
While indexQ < QuestionRange.Cells
'IF value in cell(i) equals value in cell(questions sheet)
If RatesRange.Cells(indexR) = QuestionRange.Cells(indexQ) Then
sum = QuestionNbRange.Cells(indexQ)
nb = nb + 1
End If
indexQ = indexQ + 1
Wend
indexR = i + 1
Wend
merci de votre aide
A voir également:
- Gestion des Range VBA Excel
- Liste déroulante excel - Guide
- Logiciel gestion locative gratuit excel - Télécharger - Comptabilité & Facturation
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
3 réponses
Bonjour,
Un exemple :
Cordialement
Patrice
Un exemple :
Function Test(ByRef Plage1 As Range) Dim cel As Range For Each cel In Plage1.Cells Test = Test + cel.Value Next End Function
Cordialement
Patrice
Merci de ta réponse mais je ne comprend pas comment je distingue mes cellules lorsque j'ai plusieurs colonnes?
En faite j'ai ces plages de cellule dans ce genre la
s1.col1 s1.col2 s2.col1 s2.col2 s2.col3 s2.col4 s2.col5
1 A 1 A B 40 60
2 B 2 B A 85 80
3 C 3 B C 10 15
4 D 4 F D 5 25
5 E 5 E G 20 10
mon objectif est de recuperer une valeur se trouvant dans la colonne s2.col4 ou s2.col5 selon les valeur de les autres cellules
Globalement j'ai:
sum as integer
sum=0
Si s1.col1=s2.col2
si s1.col2=s2.col2
sum=s2.col4.value
finsi
si sum=0
si s1.col2=s2.col3
sum=s2.col5
finSi
finSi
finSi
Comme en paramétre de ma fonction j'ai 3 plages de cellule, s1.col1;s1col2/s2.col1;s2.col3/s2.col4;s2.col5, comment puis je determiner avec precicion quelle est la valeur de ma cellule récupérée?
En faite j'ai ces plages de cellule dans ce genre la
s1.col1 s1.col2 s2.col1 s2.col2 s2.col3 s2.col4 s2.col5
1 A 1 A B 40 60
2 B 2 B A 85 80
3 C 3 B C 10 15
4 D 4 F D 5 25
5 E 5 E G 20 10
mon objectif est de recuperer une valeur se trouvant dans la colonne s2.col4 ou s2.col5 selon les valeur de les autres cellules
Globalement j'ai:
sum as integer
sum=0
Si s1.col1=s2.col2
si s1.col2=s2.col2
sum=s2.col4.value
finsi
si sum=0
si s1.col2=s2.col3
sum=s2.col5
finSi
finSi
finSi
Comme en paramétre de ma fonction j'ai 3 plages de cellule, s1.col1;s1col2/s2.col1;s2.col3/s2.col4;s2.col5, comment puis je determiner avec precicion quelle est la valeur de ma cellule récupérée?
Bonjour,
Je ne comprend pas trop ce que tu veux, la valeur de la cellule, c'est cel.value, si tu as 3 plages, tu peux envoyer 3 paramètres à ta fonction :
et utiliser cel1, cel2 et cel3 pour comparer les cellules de chaque plage.
Met un exemple de ton fichier sur https://www.cjoint.com/ et met le lien dans ton prochain poste.
Je ne comprend pas trop ce que tu veux, la valeur de la cellule, c'est cel.value, si tu as 3 plages, tu peux envoyer 3 paramètres à ta fonction :
Function Test(ByRef Plage1 As Range,ByRef Plage2 As Range,ByRef Plage3 As Range)
et utiliser cel1, cel2 et cel3 pour comparer les cellules de chaque plage.
Met un exemple de ton fichier sur https://www.cjoint.com/ et met le lien dans ton prochain poste.