Rechercher dans 2 colonnes

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

totoff55

XLDnaute Nouveau
Bonsoir,
Je suis novice sue excel et je bloque sur une recherche.
J'ai en colonne A une liste de titre de films existants, en colonne B, une liste des titres achetés. Je voudrais en colonne C inscrire les titres restants à achetés. Sachant que je n'achète pas forcément les titres dans l'ordre de la colonne A.
Je ne voudrais pas une macro car je veux que cela s'affiche dés que j'ai entré le titre acheté.
Je vous remercie pour votre aide si précieuse.
cricri
 

Pièces jointes

Bonjour

Je te propose une simple MFC (mise en forme conditionnelle) : efficace et assez simple.

Merci beaucoup cela fonctionne mais je voulais avec formule car après je veux le mettre dans une listbox d'un userform, donc cela doit être automatique comme cela je gèrerai mon userform avec une macro. Mais cela va m'aider par la suite car je vais me faire un suivi des titres donc cette solution m'ira très bien. Encore merci.
 
Bonsoir,

=SI(LIGNES($1:1)<=NBVAL(tous)-NBVAL(choisis);INDEX(tous;PETITE.VALEUR(SI((NB.SI(choisis;tous)=0);LIGNE(INDIRECT("1:"&LIGNES(tous))));LIGNES($1:1)));"")
Valider avec maj+ctrl+entrée

Boisgontier
Merci beaucoup, cela fonctionne très bien, impeccable depuis le temps que je chercher, j'avais même essayer de faire avec RECHRCHEV mais cela n'allais pas. Merci Beaucoup.
 
Re,

@ JB : un formulaire pour un problème aussi simple me paraît exagéré.

Perso je préfère des listes de validation en colonne B, formule en B2 :
Code:
=SI(ESTVIDE(B2);DECALER(C$2;;;NB.SI(C:C;"><")-1);B2)
Code:
=SI(ESTVIDE(B2);DECALER(C$2;;;NB.SI(C:C;"><")-1);B2)
Fichier (2).

A+
 

Pièces jointes

Bonjour,

>après je veux le mettre dans une listbox d'un userform

http://boisgontierjacques.free.fr/fichiers/Formulaire/FormTransfertSimple3.xls

jb
Je reviens encore vers vous car je bloque de nouveau. En effet, les formules de la colonnes D ne calcule plus à partir de la ligne 92, ors avec tous les titres que j'ai a entré, cela va me faire une colonne d'environ 1000 cellules. Est ce que la formule peux me le faire; sans trop faire ramer le fichier?
Sur l'userform que vous m'avez fait, serait-t-il possible de faire afficher dans les listbox, seulement la série que l'on veut (genre avec combobox)?
J'avais pensé aussi, ne plus afficher la série si elle est achetée complète.
Je tiens aussi à vous féliciter pour votre site, il est très instructif et j'ai appris beaucoup de chose. Je me le suis mis en favoris.
Je suis en train de me faire un logiciel de suivi de mes séries et en poids il dépasse déjà les 4000 ko. Je l'ai fait en VBA et beaucoup en formule. Et je n'ai pas entré beaucoup de données de mes DVD. Et il rame déjà.

En vous remerciant par avance pour votre aide.
 

Pièces jointes

Bonjour,

J'ai remplacé la formule par une fonction perso matricielle (à tester)
Pour 1000 titres, le calcul doit être instantané.

Code:
Function Manque(Tous, Choisis)
  Application.Volatile
  TblTous = Tous.Value
  TblChoisis = Choisis.Value
  Set d = CreateObject("scripting.dictionary")
  For i = 1 To UBound(TblChoisis)
    d(TblChoisis(i, 1)) = ""
  Next i
  Set d2 = CreateObject("scripting.dictionary")
  For i = 1 To UBound(TblTous)
    tmp = TblTous(i, 1)
    If Not d.exists(tmp) Then d2(tmp) = ""
  Next i
  n = Application.Caller.Rows.Count
  Dim b(): ReDim b(1 To n, 1 To 1)
  i = 0
  For Each c In d2.keys
    i = i + 1
    b(i, 1) = c
  Next c
  Manque = b
End Function

Dans le tableur:
-Sélectionner D2😀1100
=manque(tous;choisis)
-Valider avec maj+ctrl+entrée


>Sur l'userform que vous m'avez fait, serait-t-il possible de faire afficher dans les listbox, seulement la série que l'on veut (genre avec combobox)?
>J'avais pensé aussi, ne plus afficher la série si elle est achetée complète.

J'y pense.

jb
 

Pièces jointes

Dernière édition:
Bonjour,

J'ai remplacé la formule par une fonction perso matricielle (à tester)
Pour 1000 titres, le calcul doit être instantané.

Code:
Function Manque(Tous, Choisis)
  Application.Volatile
  TblTous = Tous.Value
  TblChoisis = Choisis.Value
  Set d = CreateObject("scripting.dictionary")
  For i = 1 To UBound(TblChoisis)
    d(TblChoisis(i, 1)) = ""
  Next i
  Set d2 = CreateObject("scripting.dictionary")
  For i = 1 To UBound(TblTous)
    tmp = TblTous(i, 1)
    If Not d.exists(tmp) Then d2(tmp) = ""
  Next i
  n = Application.Caller.Rows.Count
  Dim b(): ReDim b(1 To n, 1 To 1)
  i = 0
  For Each c In d2.keys
    i = i + 1
    b(i, 1) = c
  Next c
  Manque = b
End Function

Dans le tableur:
-Sélectionner D2😀1100
=manque(tous;choisis)
-Valider avec maj+ctrl+entrée


>Sur l'userform que vous m'avez fait, serait-t-il possible de faire afficher dans les listbox, seulement la série que l'on veut (genre avec combobox)?
>J'avais pensé aussi, ne plus afficher la série si elle est achetée complète.

J'y pense.

jb
C'est très bien ce qu vous m'avez fait merci beaucoup, c'est dommage que l'n habite si loin l'un de l'autre, sinon, je vous aurez invité à boire un verre.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
942
Réponses
5
Affichages
800
S
Réponses
3
Affichages
731
C
Réponses
3
Affichages
2 K
claivier_58
C
C
Réponses
1
Affichages
2 K
claivier_58
C
D
Réponses
5
Affichages
1 K
Dimebag
D
Retour