Zone de liste deroulante ( A partir du developpeur)

Bonjour à tous les internautes de ce site merveilleux

je voudrais lier à mon menu déroulant , le top des 5 meilleurs salaires , ventilés par Entité ( Unité) .

Dans ce menu déoulant , j’y ai inclus l’ Entreprise à l’effet d’obtenir l’information en consolidé.

Pour les besoins de ma demande , je vous joint le fichier concerné ( Voir Feuil3).
Fichier Test.xlsx (66,4 Ko)

Un grand merçi à tous les contributeurs.

Bonjour @molo,

J’ai créé dans la feuille “Listes” colonne “B” une liste sans doublons, pour cela j’ai ajouté dans le “Gestionnaire de noms” “ColF” dont voici la formule.

=DECALER(Fichiersource!$F$2;;;EQUIV("zz";Fichiersource!$F:$F)-1)

Dans “Entité” colonne “B” j’applique cette autre formule matricielle à valider avec ctrl + maj + entrée pour la liste sans doublons triée (A à Z).

{=SIERREUR(INDEX(ColF;EQUIV(MIN(SI(NB.SI(B$1:B1;ColF)=0;SI(ColF<>"";NB.SI(ColF;"<"&ColF);"")));SI(NB.SI(B$1:B1;ColF)=0;SI(ColF<>"";NB.SI(ColF;"<"&ColF);""));0));"")}

Ensuite feuille “Top” colonne “C” j’utilise cette formule toujours en matricielle.

{=GRANDE.VALEUR(SI((AFFECTATION=$B$7);SBASEFICHIER);1)}

Et je fais une recherche de concordance des “Nom & Prénom” avec cette formule toujours en matricielle.

{=INDEX(nomprenom;EQUIV($B$7&$C11;AFFECTATION&SBASEFICHIER;0))}

Enfin j’ai supprimé la Combobox pour mettre une liste avec Validation des données en “B7”.

Ci joint ton fichier en retour ICI==> molo V1.xlsx (69,6 Ko)

Cordialement.

Bonjour mdo100

Un grand merçi pour la célérité dont vous avez fait montre mais il y a encore deux niveaux de difficulté à résoudre.
1- je préfére le combobox au lieu et place de la validation des données (liste) pour des raisons de visibilité , notamment;
2- dans le nombre des items composant la liste de la validation des données , il manque l’item “Entreprise”.

Aussi , je vous retourne un fichier dans lequel , à la feuil2 , j’ai structuré la nature de ma demande.

Un grand merçi pour l’effort méritoire qui est le votre et celui de tous les contributeurs de ce site.Fichier Test2.xlsx (66,8 Ko)

Re @molo,

Si j’ai compris.

Fichier ICI==> molo V2.xlsx (72,0 Ko)

Je ne réexplique pas les formules. :wink:

Cordialement.

Bonjour mdo100 et un grand merçi ,

Toutefois , les doublons n’ont pas été supprimés.

Voir , à ce sujet , les Entités Draria , bord el bahri , tipaza et …

Mes Cordiales salutations.

Re @molo,

Oui, je vois le problème, j’ai cherché sans trouver de solution pour le moment.

Je reprendrai plus tard à tête reposée.

Cdlt.

1 « J'aime »

Re @molo,

Bon, je ne pouvais pas me reposer le cerveau sans essayer de trouver une solution pour ce soir.

Voici donc une nouvelle proposition, mi figue mi raisin, ce que je veux dire c’est que j’emploi des formules avec du VBA.

Comment ça marche: Choisir dans la “Combobox” la valeur alpha comme à l’origine, puis appuyer sur le bouton " Choisir & GO ".

Voici le code VBA:

Sub For_Sans_D()

Application.ScreenUpdating = False

Range("C10:C15").AdvancedFilter Action:=xlFilterInPlace, Unique:=False

    Sheets("Top").Select
    For i = 10 To Sheets.Count
    Sheets(i).Select (False)
    Next
    
    Range("B10").Select
    ActiveCell.FormulaR1C1 = "Nom & Prénom"
    Range("C10").Select
    ActiveCell.FormulaR1C1 = "Salaires"
    Range("C11").Select
    ActiveCell.FormulaArray = "=IFERROR(IF(R2C1=""Entreprise"",LARGE(IF((Tableau10[Entreprise]=R2C1),SBASEFICHIER),1),LARGE(IF((AFFECTATION=R2C1),SBASEFICHIER),1)),"""")"
    Range("C12").Select
    ActiveCell.FormulaArray = "=IFERROR(IF(R2C1=""Entreprise"",LARGE(IF((Tableau10[Entreprise]=R2C1),SBASEFICHIER),2),LARGE(IF((AFFECTATION=R2C1),SBASEFICHIER),2)),"""")"
    Range("C13").Select
    ActiveCell.FormulaArray = "=IFERROR(IF(R2C1=""Entreprise"",LARGE(IF((Tableau10[Entreprise]=R2C1),SBASEFICHIER),3),LARGE(IF((AFFECTATION=R2C1),SBASEFICHIER),3)),"""")"
    Range("C14").Select
    ActiveCell.FormulaArray = "=IFERROR(IF(R2C1=""Entreprise"",LARGE(IF((Tableau10[Entreprise]=R2C1),SBASEFICHIER),4),LARGE(IF((AFFECTATION=R2C1),SBASEFICHIER),4)),"""")"
    Range("C15").Select
    ActiveCell.FormulaArray = "=IFERROR(IF(R2C1=""Entreprise"",LARGE(IF((Tableau10[Entreprise]=R2C1),SBASEFICHIER),5),LARGE(IF((AFFECTATION=R2C1),SBASEFICHIER),5)),"""")"
    
    Range("B11").Select
    ActiveCell.FormulaArray = "=IFERROR(IF(R2C1=""Entreprise"",INDEX(AFFECTATION,MATCH(R2C1&RC3,Tableau10[Entreprise]&SBASEFICHIER,0)),INDEX(nomprenom,MATCH(R2C1&RC3,AFFECTATION&SBASEFICHIER,0))),"""")"
    Range("B11").Select
    Selection.AutoFill Destination:=Range("B11:B15")
    
    Sheets("Top").Select
    
Range("C10:C15").AdvancedFilter Action:=xlFilterInPlace, Unique:=True
     
Application.ScreenUpdating = True

End Sub

Et voici ton fichier ICI==> molo V3.xlsm (85,5 Ko)

Cela convient-il ?

Cordialement.

1 « J'aime »

Bonjour mdo100,

je te remercie vivement pour les efforts déployés en vue de trouver une solution à la problématique posée.Toutefois , cette solution me parait un raccourci qui ne correspond pas à la nature de ma demande et ce , pour au moins 2 raisons. la première a trait au VBA que je ne maitrise pas et la seconde tient au fait , que dans ce cas de figure , ce n’est pas la solution idoine. Ex: lorsque je déroule le combobox et que je clique sur l’item “Bordj El Bahri” , la liste du top des 5 est réduite à 2 items , ce qui n’est pas conforme au besoin initial exprimé .

Cela est , également , valable pour les autres items en recourant à l’option “Choisir & Go”.

En tout état de cause , je reste persuader qu’avec les potentialités qui sont les votres , la solution ne tardera pas à voir le jour.

Cordiales salutations.

Bonjour @molo,

Bien, puisque la solution proposée, n’est pas appropriée et ne correspond pas à la nature de la demande d’aide… :stuck_out_tongue_winking_eye:

Dans ce cas, met dans une feuille à part plusieurs résultats attendus en fonction du choix de la combobox.

Voir fichier ci-dessous pour l’exemple à compléter.

Test molo V1.xlsx (10,5 Ko)

@+

Bonjour mdo100

je préfère t’envoyer une adresse dans laquelle la thématique des égalités est traitée.http://www.lecfomasque.com/traiter-les-valeurs-equivalentes-dans-un-top-5/ .
je pense qu’à partir de ce dossier , la solution jailliera.

Mes Cordiales Salutations.

Re Bonjour mdo100

Je t’envoie le fichier retraité (égalités+ajuster) . Celà facilitera le travail à effectuer.

Cordiales salutationsFichier retraité Molo.xlsx (69,9 Ko)

Bonjour @molo,

  1. Je ne me suis pas servi de ton dernier fichier joint, car cela m’entraînait sur de mauvaises pistes.

  2. J’espère qu’avec les efforts fournis sur ce forum, tu y resteras fidèle vu ton empressement a poser la même question ailleurs et avec la même réflexion “Bonjour à tous les internautes de ce site merveilleux” et sur lequel tu n’as toujours pas de réponse :confused:

Donc voici ma proposition: :wink:

Dans la feuille “Top”:

Colonne “D” qui sera masquée, je recherche les 15 grandes valeurs afin d’avoir un maximum de choix, plus ne serai pas utile dans ce cas, les résultats sont donc avec les doublons comme dans ma proposition N°2 et donc je masque cette colonne.

Formule matricielle a valider avec ctrl + maj + entrée

=SIERREUR(SI($A$2="Entreprise";GRANDE.VALEUR(SI((Tableau10[Entreprise]=$A$2);SBASEFICHIER);{1;2;3;4;5;6;7;8;9;10;11;12;13;14;15});GRANDE.VALEUR(SI((AFFECTATION=$A$2);SBASEFICHIER);{1;2;3;4;5;6;7;8;9;10;11;12;13;14;15}));"")

Colonne “E” je trie la colonne “D” pour ne plus avoir de doublons sur 5 lignes, ce qui me donne le “Top des 5 meilleurs salaires par Entité”.

Formule matricielle a valider avec ctrl + maj + entrée

=INDEX($D:$D;MIN(SI($D$11:$D$25<>"";SI(NB.SI(E$10:E10;$D$11:$D$25)=0;LIGNE($D$11:$D$25)))))

Enfin en colonne “C” je recherche les “Noms & Prénoms” si une “Entité” a été choisie dans la “Combobox” reliée avec la cellule “A2” et les “Entités” si “Entreprise” a été choisie dans la “Combobox” reliée avec la cellule “A2”.

Voir formule dans “C10”.

=SI($A$2="Entreprise";"Entités";"Noms & Prénoms")

Formule matricielle a valider avec ctrl + maj + entrée

=SIERREUR(SI($A$2="Entreprise";INDEX(AFFECTATION;EQUIV($A$2&$E11;Tableau10[Entreprise]&SBASEFICHIER;0));INDEX(nomprenom;EQUIV($A$2&$E11;AFFECTATION&SBASEFICHIER;0)));"")

Voici ton fichier ICI==> molo V4.xlsx (71,7 Ko)

Cela convient-il ?

Cordialement.

Bonjour mdo

j’ai testé tes formules matricielles et le dispositif ingénieux qui tu as mis en place pour répondre à la problématique posée et aux soucis qu’elle commence à générer mais elles ne semblent pas prendre en charge la totalité de l’objectif assigné.

Exemple : Pour l’Item “Bordj El Bahri” , nous avons le rendu suivant : 2 salariés au lieu de 5 , pour Constantine , il en est de même , 3 au lieu de 5 et ainsi de suite.

Quant à l’item Entreprise , il nous restitue , également , un rendu qui est différent ( je te retourne , à cet effet , le fichier concerné à l’effet de t’en rendre compte.

Aussi , ce qui a peut-être faussé la construction des formules , c’est le fait d’avoir considéré comme doublons , les salaires et non les salariés ( Voir l’exemple 2 dans le fichier concerné.

J’ai inséré , à toutes fins utiles , une nouvelle colonne dénommée “ajuster” qui peut , éventuellement être un début de solution pour traiter les égalités.

Quant à ma

Bonjour mdo100
j’ai testé tes formules matricielles et le dispositif ingénieux qui tu as mis en place pour répondre à la problématique posée et aux soucis qu’elle commence à générer mais elles ne semblent pas prendre en charge la totalité de l’objectif assigné.
Exemple : Pour l’Item “Bordj El Bahri” , nous avons le rendu suivant : 2 salariés au lieu de 5 , pour Constantine , il en est de même , 3 au lieu de 5 et ainsi de suite.
Quant à l’item Entreprise , il nous restitue , également , un rendu qui est différent ( je te retourne , à cet effet , le fichier concerné à l’effet de t’en rendre compte.
Aussi , ce qui a peut-être faussé la construction des formules , c’est le fait d’avoir considéré comme doublons , les salaires et non les salariés ( Voir l’exemple 2 dans le fichier concerné.
J’ai inséré , à toutes fins utiles , une nouvelle colonne dénommée “ajuster” qui peut , éventuellement être un début de solution pour traiter les égalités.
Quant à ma fidélité pour ce site , elle le restera nonobstant mon penchant pour les forums des autres sites qui constituent pour moi une source réelle de partage du savoir.
Mes plus sincères salutations.
Fichier molo.xlsx (69,8 Ko)

Bonjour @molo,

Ici comme ailleurs, nous n’avons pas d’objectif assigné, nous ne sommes pas des subordonnés et n’avons aucune obligation de résultats:interrobang:

Nous sommes des bénévoles passionnés d’Excel et un problème bien posé dans un langage clair, obtient une réponse rapide, efficace et rationnelle:bangbang:

Ceci dit:

Voir si cette nouvelle proposition convient « aux objectifs assignés. »

Fichier ICI==> molo V5.xlsx (74,4 Ko)

Cordialement.

2 « J'aime »

Bonjour mdo100

Toutes mes félicitations pour la solution que je considère comme optimale dès lors qu’elle a eu raison du problème posé.

Concernant l’objectif assigné , point n’était mon attention de m’investir dans l’Entreprise . Mais je reconnais qu’un problème bien posé est à moitié réglé.

La citation de Nicolas Boileau est , à ce propos , sans appel : “Ce que l’on conçoit bien s’énonce clairement, et les mots pour le dire arrivent aisément”.

Encore une fois merçi et à la revoyure.

1 « J'aime »