Liste à choix multiples et SommeProd

Bonjour à tous,

Je me permets de solliciter votre aide sur un double sujet:

  • La mise en place d'une liste à choix multiple.
  • L'utilisation des résultats de cette liste dans un SommeProd.

Il s'agit d'un tableau de reporting (10k lignes sur 100 colonnes environ).

La base de saisie, les listes de choix et les différents restitutions sont tous sur des onglets différents.

Jusqu'à présent, j'ai une liste déroulante avec le nom de mes légumes, mais qui ne renvoie qu'un seul argument.

Cet argument est ensuite utilisé dans toutes mes formules et graphiques.

Je cherche à produire le résultat suivant:

  • Bâtir une liste permettant la sélection de 1 à X choix (X<20 et tous les choix sont sur une liste existante): il s'agit de mes légumes.
  • Réaliser un SommeProd du type =sommeprod( (Colonne des légumes = "l'ensemble des légumes choisis")*...)
(Il s'agit donc d'un 'OU' entre 1 et 20 valeurs.)

J'espère avoir été clair dans mes explications.

Merci, par avance, pour votre aide!

Cordialement,

LPL

Regarde côté TCD (tableau croisé dynamique), tu auras certainement ta solution.

Bonjour,

Merci pour cette première réponse.

Avant de me réorienter sur une solution de type TCD (que j'utilise également sur ce document, mais pour extraire des données chiffrées uniquement), je privilégie un ajustement de mes formules.

Et jusqu'à présent, je n'ai pas trouvé comment utiliser une liste de longueur variable comme argument d'un sommeprod.

J'ai en tête une formule du type:

=sommeprod( (ColonneLégume={ListeChoisie}) *(autres aguments...); Colonne à sommer), mais la partie soulignée me pose problème...

[Edition:

En fait, j'ai compris qu'une formule de ce genre fonctionne:

=+SOMMEPROD((($C$2:$C$34=G2)+($C$2:$C$34=G5))*($E$2:$E$34=G3);$D$2:$D$34)

Il faudrait alors que:

  • je mette en G un test sur "Si case cochée, alors valeur en G = Nom du légume, Sinon "EstVide".
  • je rentre pour chaque sommeprod un ($C$2:$C$34=G2)+($C$2:$C$34=G3)+($C$2:$C$34=G4)+($C$2:$C$34=G5)+($C$2:$C$34=G6)+....

Mais ce n'est pas très élégant.

Si tu veux aller plus loin, mets un bout de fichier, ce sera plus simple !

Bonjour,

J'ai finalement résolu mon problème de la manière suivante:

  • Création de fausse Check Box (pour éviter le problème de la taille des cases à cocher)
  • Ces Check Box contrôlent chacun une cellule: Coché = Initiale du légume, Décoché = Vide: Cellules en CB7, CB8...
  • Dans le VBA de chaque CheckBox, j'ai intégré le code suivant:
Private Sub Label13_Click()
   If Label13.Caption = "" Then
        Label13.Caption = "ü"
        Sheets("Synthèse Générale").Range("CB17") = "[i]Initiale Légume[/i]"
    Else
        Label13.Caption = ""
        Sheets("Synthèse Générale").Range("CB17") = ""
    End If
End Sub

- J'ai crée un Check Box "TOUS", qui coche et décoche l'ensemble des autres CheckBox.

- J'ai reconstruit mes formules de la manière suivante:

'=+SOMMEPROD((((Base!$D$7:$D$10023)=CB7)+((Base!$D$7:$D$10023)=CB8)+((Base!$D$7:$D$10023)=CB9)+...+ les autres critères).

Bon, ça fonctionne...

MAIS

C'est lent...

J'ai environ 50 SommeProd sur la feuille, ces SommeProd alimentent des graphes.

Bref, il faut 15 secondes pour tout cocher ou décocher et mettre à jour les données et graphiques.

Bien cordialement,

Rechercher des sujets similaires à "liste choix multiples sommeprod"