Probléme de Formule SOMME.SI

drouault Messages postés 73 Date d'inscription samedi 9 juillet 2005 Statut Membre Dernière intervention 14 août 2007 - 16 août 2005 à 17:33
drouault Messages postés 73 Date d'inscription samedi 9 juillet 2005 Statut Membre Dernière intervention 14 août 2007 - 17 août 2005 à 17:05
ActiveCell.FormulaR1C1 = "=SUMIF(Export_lineaire!R[" & -5 - i + 7 & "]C[-5]:R[" & nb_ligne_lin - 5 - i + 7 & "]C[" & nb_col_lin - 4 & "];RC[-10];Export_lineaire!R[" & -5 - i + 7 & "]C[-7]:R[" & nb_ligne_lin - 5 - i + 7 & "]C[-7])"

Voila ma formule que n'arrive pas à faire marcher.

i est la boucle qui balaye des cellules d'une colonne ou afficher le résultat

nb_col_lin et nb_ligne_lin sont les limites des cellules utilisées

Merci d'avance

Pierre

6 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
16 août 2005 à 17:46
Salut
Un peu brouillon tout ça.
Dans ta formule, tu utilises ce format : R[1]C[2]
Pour moi, la syntaxe est R(1)C(1) avec des parenthèses, pas des crochets

De plus, tu demandes à Excel d'additionner une chaine avec des chiffres. Ca, il aime pas !
Exemple du début (à utiliser dans le reste), si SUMIF est bon, regarde dans l'aide :
ActiveCell.FormulaR1C1 = "=SUMIF(Export_lineaire!R(" & CStr(-5 - i + 7) & ")C[-5]: ...

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
0
drouault Messages postés 73 Date d'inscription samedi 9 juillet 2005 Statut Membre Dernière intervention 14 août 2007
16 août 2005 à 18:20
Je viens de m'apercevoir que le haut du message a été coupé donc Bonjour pour commencer (dsl)

Je regarde ça tout de suite jack mais j'utilise la même synthaxe sur une formule CountIf qui marche .....

Merci pour ta réponse

Pierre
0
drouault Messages postés 73 Date d'inscription samedi 9 juillet 2005 Statut Membre Dernière intervention 14 août 2007
16 août 2005 à 18:44
ça n'a pas l'air de mieux lui plaire comme ça :
je met le code un peu plus large au cas ou ça viendrait d'ailleurs:

For i = 7 To (nb_ligne_det_art - 5) 'Balayage de la colonne quantité du bordereau à remplir
Cells(i, 11).Select 'Selection de chaque cellule qui est balayer
If ActiveCell.Value = 0 Then
ActiveCell.FormulaR1C1 = "=SUMIF(Export_lineaire!R(" & CStr(-5 - i + 7) & ")C(-5):R(" & CStr(nb_ligne_lin - 5 - i + 7) & ")C(" & CStr(nb_col_lin - 4) & ") 'Plage où rechercher les données à comparer

;RC(-10) 'Reférence à la cellule à comparer

;Export_lineaire!R(" & CStr(-5 - i + 7) & ")C(-7):R(" & CStr(nb_ligne_lin - 5 - i + 7) & ")C(-7))" 'Plage à sommer

End If
ProgressBar1.Value = i
Next i

Sinon je vais repartir de plus facile et plus petit pour tester mais je pensais qu'en m'inspirant de l'autre formule ça marcherait

Merci pour votre aide
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
16 août 2005 à 22:28
et ... psst : je viens de m'apercevoir de ça : Les adresses de cellule, c'est pas R(1)C(1), mais L(1)C(1) !!

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
0

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

Posez votre question
drouault Messages postés 73 Date d'inscription samedi 9 juillet 2005 Statut Membre Dernière intervention 14 août 2007
17 août 2005 à 16:59
Non toujours pas meme avec des L à la place des R : je vais essayer à coup de masse je pense ça devrait marcher au bout d'un moment ....
0
drouault Messages postés 73 Date d'inscription samedi 9 juillet 2005 Statut Membre Dernière intervention 14 août 2007
17 août 2005 à 17:05
A y'est à moitié : La formule ne marche pas mais ne fais plus planter le programme
Il fallait mettre FormulaLocal à la place de Formula R1C1
Si quelqu'un à un bon tutoriel là dessus je suis preneur car j'y comprend pas grand chose entre tous ça ....
Merci jack d'avoir chercher
A+
Pierre
0
Rejoignez-nous