Stepney
Messages postés4Date d'inscriptionlundi 23 novembre 2009StatutMembreDernière intervention27 novembre 2009
-
24 nov. 2009 à 18:05
us_30
Messages postés2065Date d'inscriptionlundi 11 avril 2005StatutMembreDernière intervention14 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
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 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)
us_30
Messages postés2065Date d'inscriptionlundi 11 avril 2005StatutMembreDernière intervention14 mars 201610 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 ?
Stepney
Messages postés4Date d'inscriptionlundi 23 novembre 2009StatutMembreDernière intervention27 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
Vous n’avez pas trouvé la réponse que vous recherchez ?
us_30
Messages postés2065Date d'inscriptionlundi 11 avril 2005StatutMembreDernière intervention14 mars 201610 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...
Stepney
Messages postés4Date d'inscriptionlundi 23 novembre 2009StatutMembreDernière intervention27 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.
us_30
Messages postés2065Date d'inscriptionlundi 11 avril 2005StatutMembreDernière intervention14 mars 201610 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...