Supprimer doublons selon une condition (liste déroulante)

Bonjour à tous,

C'est une grande 1ère pour moi !

Après des heures passées à chercher une solution, je me tourne vers vous pour éclairer ma lanterne.

Alors voila, dans mon fichier (PJ), il y a 2 feuilles :

- "base_données" avec 2 colonnes (1 colonne Marque et 1 colonne Ref) + la liste des différentes marques

- "visu" qui me donne du fil à retordre. Je souhaiterais, en fonction de la "marque" sélectionnée, qu'apparaissent toutes

les Ref. de cette "marque" sans doublon.

PS : j'ai essayé INDICE, COUNT, sans succès

PS3 : cette "base_données" sera actualisée régulièrement, un PivoTbal n'est pas très pratique

Un grand merci pour votre temps & aide,

Bonne journée et bon week-end

Bonjour HDELA

Ton exemple en PJ est-il conforme au fichier final ?

Je voudrais savoir en fait si ta liste "base_donnees" se trouve bien à cette endroit et de cette (toujours même) forme mis à part la longueur évidement !

Hello andre73,

j'ai pas mal simplifié le fichier pour pouvoir le mettre en PJ, mais globalement la feuille "base_données" est au meme format et au meme endroit que dans le fichier complet. La seule différence est que les colonnes de C à AZ ont des informations.

(re)

Ok, je regarde !

Bonjour (soir)

un essai comme ceci ..

P.

Bonsoir Patrick1957,

merci pour ta contribution mais je n'arrive pas à ouvrir ta PJ (petit souci avec mon PC perso).

Cela va devoir attendre lundi ...

Hello Patrick1957,

je viens d'ouvrir ton fichier.

  • dans "base_données", la colonne ref doit rester comme telle, cad- sans numerotation d'ordre des "Ref".
  • dans "visu", ce que j'avais en tête était d'avoir seulement 1 fois la ref de la marque sélectionée:
EX : si je sélectionne la marque A, ces 4 Refs doivent apparaitre (sans doublon) : PT010133, PT010131, PT010128, PT009584

@Andrea73 / Patrick1957, avez-vous une idée en tête ?

Un grand merci

Bonjour HDELA, Patrick1957,

Merci de me rappeler à l'ordre (je n'avais pas eu le temps en fait de me pencher sur ton problème)

Mea culpa... c'est chose faite !

Il me vient une solution toute bête ! explications :

Est-il envisageable (éventuellement en automatisant cela) de générer une liste sans doublons à un endroit de "base_donnees" (par exemple) à chaque fois que tu mets à jour cette BDD et de ne faire ensuite les sélections de "visu" due d'après cette "nouvelle BDD sans doublons" ?

Bonjour à tous ,

une manière de faire ici sans doublon et avec un double clic après sur la cellule grise

(résultat en colonne C, mais facile à changer dans le code)

P.

andrea73 a écrit :

Est-il envisageable (éventuellement en automatisant cela) de générer une liste sans doublons à un endroit de "base_donnees" (par exemple) à chaque fois que tu mets à jour cette BDD et de ne faire ensuite les sélections de "visu" due d'après cette "nouvelle BDD sans doublons" ?

Oui, cela peut fonctionner en téorie, par contre le sèche pour le "comment faire" ?

Voici en PJ la feuille "base_données" un peu plus proche de la réalité.


patrick1957 a écrit :

Bonjour à tous ,

une manière de faire ici sans doublon et avec un double clic après sur la cellule grise

(résultat en colonne C, mais facile à changer dans le code)

P.

Merci Patrick1957 ! Cela fonctionne (j'ai changé le code, pour mettre le résultat en colonne B).

Une petite question, sais-tu m'expliquer ton code et notamment cette partie ? :

Set mondico = CreateObject("Scripting.Dictionary")
For Each c In [REF]
    If c.Offset(, -1) = f.[B3] Then
      mondico(c.Value) = mondico(c.Value) & c.Value
    End If
Next c
f.[B6:C1000].ClearContents
f.[b6].Resize(mondico.Count, 1) = Application.Transpose(mondico.keys)
End Sub

bonjour

un essai

comme voulu : la liste de fait et;sans doublon

la formule et matricielle

70hdela.xlsx (15.99 Ko)

sur le fichier de Patrick

cordialement

Bonjour tous, tulipe_4

Si ça ce n'est pas une formule efficace !!!

Chapeau bas tulipe_4

C'est presque aussi compliqué qu'une formule mathématique mais ça fonctionne !

re

merci

c'est un cocktail ; de solutions archi repertoriées ;je melange ; je secoue parfois ça fait "pschitttt"

cordialement

tulipe_4 a écrit :

bonjour

un essai

comme voulu : la liste de fait et;sans doublon

la formule et matricielle

Merci tulipe_4, cela fonctionne !

Une question : à quoi sert le "{" qui precede le signe " = " de la formule dans "visu" ?

J'ai essayé d'utiliser ta formule dans mon fichier mais le calcul ne se lance pas

{=SE(LIN(A2)>CONTAR(1/FREQUÊNCIA(SE(MARQUE=B$3;CORRESP(REF;REF;0));LIN(MARQUE)-1));"";ÍNDICE(REF;MÍNIMO(SE(MARQUE=B$3;SE(CONTAR.SE(B$5:B6;REF)=0;LIN(MARQUE)-1)))))

(re)

les { } ce sont les fameuses et non moins célèbres formules matricielles de tulipe_4 celles qui font mal aux doigts ! mais tulipe_4 va se faire un plaisir de t'expliquer cela mieux que moi !

re

donc voila des esspligazionnes

  • une fonction matricielle est une fonction qui fait plusieurs operations en simultané ; en utilisant le fruit des calculs internes ; on ne voit pas ces calculs ; ils sont "stockés " sous forme de matrices de valeurs ;un peu comme si on utilisait une colonne pour chaque phase de calcul (et qu'ensuite on masque ces colonnes )
  • pour faire fonctionner ce process : il faut le preciser au logiciel
comment faire ??

1)on met le curseur de la barre de tache à l'extremité droite de la fonction "a la derniere ))

2) on appuie sur les touches

Ctrl Maj ( ex shift ou la grosse fleche) et Entrée les 3 en meme temps

si la fonction est correctement rédigée .... des {........} se mettent automatiquement ;preuve que ......

ATTENTION

il faut prendre garde à ne selectionner que la premiere cellule de la plage des resultats ; on la valide avec les 3 touches, ensuite on incremente ; car sinon on se retrouve avec une plage de resultats qui risque d'etre erronnée, (selon le process créé ) et;de plus impossible à modifier (sans tout scratcher)

nb) il est vain de saisir les { }, car le logiciel ne se satisfait pas de cette simple saisie ( malgré les apprences)

cordialement

Excuses moi de te reprendre tulipe_4

tulipe_4 a écrit :

on met le curseur de la barre

tu veux parler de la barre de formule ! n'est-ce pas ?

Quoi qu'il en soit, l'explication de l'expert es-tri-dactylo à parlé !

re

oui

tache / formules : d'une manière generale ;ce qui se passe la dedans est rarement clair

cordialement

Merci pour les explications tulipe_4, j'ai fais un test, je crois que j'ai compris

Une dernière question, à quoi sert le "A2" ?

{=SE(LIN(A2)>CONTAR(1/FREQUÊNCIA(SE(MARQUE=B$3;CORRESP(REF;REF;0));LIN(MARQUE)-1));"";ÍNDICE(REF;MÍNIMO(SE(MARQUE=B$3;SE(CONTAR.SE(B$5:B6;REF)=0;LIN(MARQUE)-1)))))

re

cela fait partie de LIGNE(A2); rassure toi cela n'a rien à voir avec ce qui se passe dans la ligne en A2 ;malgrè les apparences

LIGNE renvoie tout simplement un n° ;; A2 =2 ; ACB2 aussi ;on peut aussi l'ecrire LIGNE(2:2)

comme on n'y met pas de $ pour figer ; au fur et a mesure de l'incrementation ,cela se tranforme en 3,4,5.......

Ainsi si l'on compare cette valeur (mobile) à la valeur fixe du nombre de valeur sans doublon selon le critere :NB 1/ FREQUENCE(.....

on crée un garde fou qui evite à la formule d'afficher "n'importe quoi"

attention dans ta demande tu indiques A2 ;mais pour la première cel de la liste c'est A1 ; sinon il va te manquer une valeur (normal)

cordialement

Rechercher des sujets similaires à "supprimer doublons condition liste deroulante"