VBA : fonction sumif
Utilisateur anonyme
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour
J'utilise la fonction sumif pour faire une somme suivant une condition.
Feuil11.Range("B2").Offset(i - 1, 0) = Application.WorksheetFunction.SumIf(Feuil3.Range("AS2:AS" & a), Feuil9.Range("A2").Offset(i - 1, 0), Feuil3.Range("AB2:AB" & a))
À présent j'aimerai faire une somme suivant deux conditions.
Sauriez vous comment je pourrai modifier ce code, sans passer par If , End If ; car j'ai pas mal de colonne.
Merci d'avance
Laure
J'utilise la fonction sumif pour faire une somme suivant une condition.
Feuil11.Range("B2").Offset(i - 1, 0) = Application.WorksheetFunction.SumIf(Feuil3.Range("AS2:AS" & a), Feuil9.Range("A2").Offset(i - 1, 0), Feuil3.Range("AB2:AB" & a))
À présent j'aimerai faire une somme suivant deux conditions.
Sauriez vous comment je pourrai modifier ce code, sans passer par If , End If ; car j'ai pas mal de colonne.
Merci d'avance
Laure
4 réponses
Bonjour
petite démo:
maquette:
http://www.cijoint.fr/cjlink.php?file=cj201012/cij7zOnUwA.xls
petite démo:
Sub somme_2conditions()
Sheets(3).Range("C3") = Evaluate("sumproduct((Feuil1!A2:A30=Feuil2!B2)*(Feuil1!B2:B30=Feuil2!C2)*(Feuil1!C2:C30))")
End Sub
maquette:
http://www.cijoint.fr/cjlink.php?file=cj201012/cij7zOnUwA.xls
Bonsoir Michel_m
J'ai essayé sans succès du coup je reviens vous demander de l'aide.
Pourriez vous s'il vous plaît modifier votre code afin qu'il puisse fonctionner dans une boucle
Comme dans l'exemple http://www.cijoint.fr/cjlink.php?file=cj201012/cijuTlI2M2.xls
Les deux conditions varieraient en fonction des intitulés colonnes et lignes du tableau feuille 3
Merci d'avance
Laure
J'ai essayé sans succès du coup je reviens vous demander de l'aide.
Pourriez vous s'il vous plaît modifier votre code afin qu'il puisse fonctionner dans une boucle
Comme dans l'exemple http://www.cijoint.fr/cjlink.php?file=cj201012/cijuTlI2M2.xls
Les deux conditions varieraient en fonction des intitulés colonnes et lignes du tableau feuille 3
Merci d'avance
Laure
Bonsoir
Sans vouloir abuser.
Pourriez-vous s'il vous plaît jeter un coup d'oeil sur l'exemple ci joint
http://www.cijoint.fr/cjlink.php?file=cj201012/cijvuZHw6C.xls
Je ne sais pas pourquoi mais j'obtiens un tableau décalé d'une colonne et d'une ligne alors que je n'ai pas modifié votre code.
Aussi si possible je voudrai que soient classé dans ce tableau les chiffres par ordre décroissant les sommes. Afin que je puisse avoir les 10 plus gros secteurs s'affichant dans les 10 premières lignes du tableau en fait.
Merci d'avance
Laure
Sans vouloir abuser.
Pourriez-vous s'il vous plaît jeter un coup d'oeil sur l'exemple ci joint
http://www.cijoint.fr/cjlink.php?file=cj201012/cijvuZHw6C.xls
Je ne sais pas pourquoi mais j'obtiens un tableau décalé d'une colonne et d'une ligne alors que je n'ai pas modifié votre code.
Aussi si possible je voudrai que soient classé dans ce tableau les chiffres par ordre décroissant les sommes. Afin que je puisse avoir les 10 plus gros secteurs s'affichant dans les 10 premières lignes du tableau en fait.
Merci d'avance
Laure
Il n' y a rien dans la feuille "calcul" !!! :-((
au départ, c'était juste établir en VBA une somme à 2 conditions:
j'aimerai faire une somme suivant deux conditions.
ensuite une matrice de 14 colonnes par 30 lignes
et maintenant:...
que soient classé dans ce tableau les chiffres par ordre décroissant les sommes Afin que je puisse avoir les 10 plus gros secteurs s'affichant dans les 10 premières lignes du tableau en fait.
Il y a 14 colonnes....
Après, tu voudrais que ..?
au départ, c'était juste établir en VBA une somme à 2 conditions:
j'aimerai faire une somme suivant deux conditions.
ensuite une matrice de 14 colonnes par 30 lignes
et maintenant:...
que soient classé dans ce tableau les chiffres par ordre décroissant les sommes Afin que je puisse avoir les 10 plus gros secteurs s'affichant dans les 10 premières lignes du tableau en fait.
Il y a 14 colonnes....
Après, tu voudrais que ..?
Bonsoir
La feuille Calcul se rempli via la macro données.
Oui je voulais faire une somme suivant deux conditions.
Mais au départ je pensais que mon code (celui de ma question) était adaptable et que j'aurais donc pu le mettre dans une boucle (comme je l'ai fait pour une condition) et qu'ensuite j'aurai classé les résultats.
Je sais que j'abuse là ... mais je n'arrive pas à modifier votre code.
Je débute en VBA et je n'aurais moi pas pu écrire tout ça ...
Merci pour votre aide.
Laure
La feuille Calcul se rempli via la macro données.
Oui je voulais faire une somme suivant deux conditions.
Mais au départ je pensais que mon code (celui de ma question) était adaptable et que j'aurais donc pu le mettre dans une boucle (comme je l'ai fait pour une condition) et qu'ensuite j'aurai classé les résultats.
Je sais que j'abuse là ... mais je n'arrive pas à modifier votre code.
Je débute en VBA et je n'aurais moi pas pu écrire tout ça ...
Merci pour votre aide.
Laure
bonjour,
Je n'ai vu AUCUNE DONNEE dans le classeur que tu m''as transmis... que ce soit dans TCD3 et CALCUL !!!
de m^me aucun renseignement sur un décalage (où, quelle ligne et/ou colonne) et sur le tri que je t'avais déjà demandé et resté sans réponse
mais à moi de me demer... avec rien !!!
De toutes façons la solution ne passe certainement pas par de sumif ni des sumproduct comme tu m'as embarqué mais par des TCD comme sont baptisés des onglets...
Il faut bien te rendre compte que ce que tu demandes n'est pas forcément facile et que personne ne veut passer parfois plusieurs heures à essayer de résoudre un problème bénévolement pour se voir dire après coup ) il faut en plus que....
Désolé, suivi abandonné
Je n'ai vu AUCUNE DONNEE dans le classeur que tu m''as transmis... que ce soit dans TCD3 et CALCUL !!!
de m^me aucun renseignement sur un décalage (où, quelle ligne et/ou colonne) et sur le tri que je t'avais déjà demandé et resté sans réponse
mais à moi de me demer... avec rien !!!
De toutes façons la solution ne passe certainement pas par de sumif ni des sumproduct comme tu m'as embarqué mais par des TCD comme sont baptisés des onglets...
Il faut bien te rendre compte que ce que tu demandes n'est pas forcément facile et que personne ne veut passer parfois plusieurs heures à essayer de résoudre un problème bénévolement pour se voir dire après coup ) il faut en plus que....
Désolé, suivi abandonné
Sub somme_2conditions() derlig = Sheets(1).Range("A65536").End(xlUp).Row Sheets(3).Range("C3") = Evaluate("sumproduct((Feuil1!A2:A3" & derlig & "=Feuil2!B2)*(Feuil1!B2:B3" & derlig & "=Feuil2!C2)*(Feuil1!C2:C3" & derlig & "))") End SubMerci pour votre aide, c'est exactement ce que je cherche à faire.
Mais je ne sais pas pourquoi dans mon fichier ça ne marche pas
En voici un extrait, je voudrai garder l'expression de la dernier ligne (derlig), mais là pour le test j'ai mis 478
http://www.cijoint.fr/cjlink.php?file=cj201012/cijSpnltF3.xls
Laure
Dans ta colonne A tu as des #NA à supprimer ! :-)
Merci Beaucoup !!!