Gestion des Range VBA Excel

Fermé
yaya - 16 août 2010 à 22:22
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 17 août 2010 à 13:00
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
A voir également:

3 réponses

Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
17 août 2010 à 01:08
Bonjour,
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
0
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?
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
17 août 2010 à 13:00
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 :

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.
0