IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Utilisation de somme.si.ens avec critère spécifique [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Homme Profil pro
    Chef de projet Informatique
    Inscrit en
    Mai 2013
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chef de projet Informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2013
    Messages : 72
    Points : 42
    Points
    42
    Par défaut Utilisation de somme.si.ens avec critère spécifique
    Bonsoir le forum

    Je veux utiliser dans feuille Excel cette fonction pour faire la somme de cellules répondant à deux critères: citère 1 : présence d'une chaine "XXXX" dans une colonne et critère 2, la présence d'une autre chaine dans une autre cellule par une formule. En faite la deuxième chaine est une sous-chaine extraite d'une chaine par une expression de type dans la colonne H:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =STXT(F4;1;TROUVE("-";F4;1)-1)
    et ma formule avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMME.SI.ENS(J:J;H:H;"=""France")
    me retourne toujours 0. Qu'est-ce qui est incorrect dans mon code avec la sous-chaine?

    Merci pour votre aide
    Clem256

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Bonjour,

    Il faudrait voir ce qu'il y a en colonne J.
    Est-ce que ce sont des valeurs numériques ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMME.SI.ENS(J:J;H:H;"=""France")
    devrait être tout simplement comme ceci si "France" se retrouve bien en colonne H
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMME.SI.ENS(J:J;H:H;"France")
    MPi²

  3. #3
    Membre du Club
    Homme Profil pro
    Chef de projet Informatique
    Inscrit en
    Mai 2013
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chef de projet Informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2013
    Messages : 72
    Points : 42
    Points
    42
    Par défaut
    re-Bonjour

    Dans la colonne J il y a des valeurs numériques données par des formules du style:
    valeurs cellule A/valeur cellule B
    . Dans les cellules de la colonne H, il y a des formules
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    STXT(F:F;1;TROUVE("-";F:F;1)-1)
    qui sont censées extraire une sous-chaine de chaines qui se trouvent dans cellule correspondante de la colonne F. On extrait "France", "Inde"...La question est: peut-on mettre comme citère le résultat d'une formule, et si oui comment écrire ce critère? Je commpare la sous-chaine extraite à différentes chaines. Est-ce admissible?
    J'ai aussi essayé en écrivant directement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMME.SI.ENS(J:J;F:F;"STXT(F:F;1;TROUVE("-";F:F;1)-1) = France")
    , mais cette formule aussi renvoie toujours 0. Je dois faire une grosse betise .
    Merci
    clem256

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Il faudrait que tu vérifies si ta formule en H retourne un mot avec un ou des espaces. Dans ton SOMME.SI.ENS, si tu demandes un mot sans espace, il faut que la valeur dans la colonne recherchée n'ait pas d'espace.

    Tu pourrais essayer en ajoutant SUPPRESPACE à ta formule, qui équivaut à TRIM en VBA.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SUPPRESPACE(STXT(F4;1;TROUVE("-";F4;1)-1))
    MPi²

  5. #5
    Membre du Club
    Homme Profil pro
    Chef de projet Informatique
    Inscrit en
    Mai 2013
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chef de projet Informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2013
    Messages : 72
    Points : 42
    Points
    42
    Par défaut
    Bonjour,

    J'ai vérifié et à priori la sous-chaine retournée est sans sans espace. J'ai rajouté SUPPRESPACE et cela ne fonctionne pas mieux. Voci en attaché un petit fichier avec un extrait de la BD et les formules que je teste dans les cellules O7 et O9. je pense qu'il y a un problème de principe dans la formule. dans la case O7 en rouge.
    Merci
    clem235
    Fichiers attachés Fichiers attachés

  6. #6
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Si tu mets ta formules en L
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SUPPRESPACE(STXT(D:D;1;TROUVE("-";D:D;1)-1))
    Tu pourrais faire ton autre formule comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMME.SI.ENS(I:I;B:B;"Pre-Sales";L:L; "France")
    Mais est-ce bien ce que tu cherches à faire ou à avoir comme résultat ?
    MPi²

  7. #7
    Membre expérimenté
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2013
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 885
    Points : 1 499
    Points
    1 499
    Par défaut utilisation de somm.si.ens
    bonjour,

    Sur la base de ton fichier regardes la pièce jointe.

    En partant de l'extraction VBA retourne en apparence le résultat de la formule.
    En fait il te renvoie le résultat de la formule logé dans la colonne extraction.
    C'est si vrai que tu n'obtiens rien lorsque tu pars de D:D au lieu de L:L .

    Conclusion : dans "somme.si.ens", en rappelant la formule de la colonne extraction, tu indiques à VBA que c'est le résultat de l'extraction déjà faite en L:L que tu veux et non une valeur particulière.

    Cordialement,
    Fichiers attachés Fichiers attachés

  8. #8
    Membre du Club
    Homme Profil pro
    Chef de projet Informatique
    Inscrit en
    Mai 2013
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chef de projet Informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2013
    Messages : 72
    Points : 42
    Points
    42
    Par défaut
    @ parmi

    Merci pour la suggestion, mais je voulais justement éviter de créer une autre colonne pour y mettre le résultat de la formule. Le fichier vient d'une tierce partie et je ne souhaitais pas rajouter une colonne supplémentaire. Mais s'il n'y a pas d'autre moyens...

    @ nibledispo

    Merci pour les indications et je les comprends.
    Mais je ne m'explique pas pourquoi une valeur particulière égale à l'extraction n'est pas prise en compte directement dans la formule quand on y ajoute la l'expression
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    D:D;SUPPRESPACE(STXT(D:D;1;TROUVE("-";D:D;1)-1))
    je m'arrêterai donc à ta solution. Encore merci.

  9. #9
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Essaie ceci...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMME.SI.ENS(I:I;B:B;"Pre-Sales";D:D; "France*")
    un tout petit astérisque...

    Joyeuses Fêtes
    MPi²

  10. #10
    Membre du Club
    Homme Profil pro
    Chef de projet Informatique
    Inscrit en
    Mai 2013
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chef de projet Informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2013
    Messages : 72
    Points : 42
    Points
    42
    Par défaut
    Cela fonctionne .Merci
    Joyeuses fêtes et bonne année 2014.
    clem256

  11. #11
    Membre expérimenté
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2013
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 885
    Points : 1 499
    Points
    1 499
    Par défaut utilisation de somme.si.ens
    Bonjour,

    Et quand ce sera India ou tout autre pays ?

    S'il faut parcourir tout le fichier pour adapter la formule autant autant écrire tout de suite le résultat.

    Cordialement

  12. #12
    Membre du Club
    Homme Profil pro
    Chef de projet Informatique
    Inscrit en
    Mai 2013
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chef de projet Informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2013
    Messages : 72
    Points : 42
    Points
    42
    Par défaut
    Bonjour et bonne année 2014.
    Je voulais appliquer la solution sur un tableau avec peu de valeurs de pays différentes. Et cela convenait. Sinon quelle est ta proposition pour plus de généricité?

  13. #13
    Membre expérimenté
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2013
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 885
    Points : 1 499
    Points
    1 499
    Par défaut utilisation de somm.si.ens
    Bonjour,

    La solution, je l'ai donné plus haut.
    Si c'est la colonne supplémentaire qui te pose problème, il te suffit de la masquer.
    C'est surement préférable à une adaptation manuelle en fonction des pays si minimes soient les cas.

    Cordialement,

  14. #14
    Membre du Club
    Homme Profil pro
    Chef de projet Informatique
    Inscrit en
    Mai 2013
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chef de projet Informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2013
    Messages : 72
    Points : 42
    Points
    42
    Par défaut
    Très bien c'est ce que je pensais. Merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Critère OU dans Somme.Si.Ens avec Variables
    Par FC9029 dans le forum Excel
    Réponses: 11
    Dernier message: 13/10/2018, 03h51
  2. formule somme.si.ens avec critére sur les dates
    Par AMEDDO79 dans le forum Excel
    Réponses: 15
    Dernier message: 10/02/2016, 10h35
  3. [XL-2010] Transposer somme.si.ens avec critère sur date et heures en vba ?
    Par novice06 dans le forum Excel
    Réponses: 25
    Dernier message: 30/04/2015, 13h10
  4. Somme.si.ens avec critères dynamiques
    Par eduardo9231 dans le forum Général VBA
    Réponses: 1
    Dernier message: 09/11/2014, 07h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo