Pb code sumif

Stepney Messages postés 4 Date d'inscription lundi 23 novembre 2009 Statut Membre Dernière intervention 27 novembre 2009 - 24 nov. 2009 à 18:05
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 - 27 nov. 2009 à 14:33
Bonjour,

J'ai un pb avec mon code ci-dessous. Je veux faire une boucle avec la foction sumif.


x = Sheets("Sales_Order_with_Project_Number").Cells(65535, 4).End(xlUp)(1).Row

For i = 2 To x

Worksheets("Summary_Project_Num_List").Cells(i, 18).Formula = "=SUMIF(Sales_Order_with_Project_Number!$D$6:$D$" & x & ";Summary_Project_Num_List!a" & i & ";Sales_Order_with_Project_Number!$X$6:$X$" & x & ")"
Next

Merci de votre aide

7 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
24 nov. 2009 à 19:37
Salut
Et quel est ton problème ?
Qu'est ce qui ne fonctionne pas ?
As-tu une erreur ? laquelle ?
As-tu tapé à la main cette formule avant de voiloir la paramétrer ?
Quel est le texte de ta Formula après que ton programme ait tourné ?

Rappel : Quand tu insères un chiffre dans une chaine, la conversion chiffre-texte est implicite (c'est le compilateur qui s'en occupe) mais ce chiffre converti présente alors un espace devant le chiffre, exemple :
si x = 32 : "$D$" & x & "toto" donnera "$D$ 32toto" ce qui peut poser problème dans ce genre de fonction !
Ecrit toi même la convertion pour ne pas avoir de surprise : Utilise CStr(x) à la place de x pour ne pas avoir d'espace.

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
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
24 nov. 2009 à 22:28
Bonsoir,

As-tu lu au moins ma réponse sur ta 1ere question ?

Pour ton code, je reste dubitatif. Tu écris 2 fois une formule dans la même cellule ! La première formule sera remplacée par la deuxième ?!
Qu'est-ce que tu veux faire vraiment ?

Amicalement,
Us.
0
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
24 nov. 2009 à 22:55
oupsss... tu pourras me lire qu'à ta prochaine connexion...

Us.
0
Stepney Messages postés 4 Date d'inscription lundi 23 novembre 2009 Statut Membre Dernière intervention 27 novembre 2009
26 nov. 2009 à 17:39
En fait j'ai un dossier avec plusieurs onglets et je voudrais faire la somme de mes valeurs se trouvant dans l'onglet "Sales_Order_with_Project_Number" sur une plage qui est variable (c'est pour cela que je le defini de D6 jusqu'à la fin du dernier enregistrement. Je veux mettre le resultat dans l'onglet "Summary_Project_Num_List".
ex mon "Projet K" qui est ds l'onglet "Summary_Project_Num_List", je le rcherche dans l'onglet "Sales_Order_with_Project_Number" (colonne D) et je somme les valeurs correspondantes (colonne X.

j'espere que je suis clair!
Merci d'avance
0

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

Posez votre question
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
26 nov. 2009 à 20:52
Oui, un peu près du moins... et je vois pas trop l'intérêt alors de passer par du VBA... Ce qui tu décris se résume par l'emploi de la fonction SOMME.SI du tableur et une seule fois...

En formule du tableur, cela vaudrait donc à :
=SOMME.SI(Sales_Order_with_Project_Number!D:D;"=projet k";Sales_Order_with_Project_Number!X:X)

en mettant cette dernière dans Summary_Project_Num_List

Amicalement,
Us.
0
Stepney Messages postés 4 Date d'inscription lundi 23 novembre 2009 Statut Membre Dernière intervention 27 novembre 2009
27 nov. 2009 à 11:35
Oui Us, mais mon probleme c'est mes donnees qui sont ds l'onglet "Sales_Order_with_Project_Number" sont le resultat d'une importation de données et donc le nombre de lignes va continuer d'augmenter. En plus en mettant directement la sommesi dans les cellules, le temps des calculs est long.

Merci!
0
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
27 nov. 2009 à 14:33
Bonjour,

En mettant "D:D" ou "X:X", la somme se fait sur toute la colonne quelle que soit le nombre de ligne... Excel se débrouille tout seul comme un grand... Le temps de calcul est instantané ou quasi-instantané... Essayes donc la formule, et tu verras...

Ensuite, rien n'empêche de retranscrire en VBA en macro, cette formule... mais il faudrait que cela apporte quelque chose de plus que le tableur...

Amicalement,
Us.
0
Rejoignez-nous