Rechercher dans 2 colonnes

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

  • Test.xlsx
    10.5 KB · Affichages: 34

totoff55

XLDnaute Nouveau
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.
 

totoff55

XLDnaute Nouveau
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.
 

job75

XLDnaute Barbatruc
Bonjour à tous,

Formule matricielle en C2 du fichier joint :
Code:
=SIERREUR(INDEX(A:A;PETITE.VALEUR(SI(NON(NB.SI(B:B;T));LIGNE(T));LIGNES(C$2:C2)));"")
Le nom T définit dynamiquement la liste en colonne A.

A+
 

Pièces jointes

  • Test(1).xlsx
    17.4 KB · Affichages: 62

job75

XLDnaute Barbatruc
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

  • Test(2).xlsx
    17.6 KB · Affichages: 37

totoff55

XLDnaute Nouveau
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

  • Suivi_Séries.xls
    70.5 KB · Affichages: 21

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
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:D1100
=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

  • Suivi_Séries2.xls
    127 KB · Affichages: 22
Dernière édition:

totoff55

XLDnaute Nouveau
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:D1100
=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.
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Version intermédiaire provisoire

Dans le formulaire, on peut choisir la série (combobox).

Dans la version suivante, on pourra transférer les maj d'une série dans la feuille du tableur

jb
 

Pièces jointes

  • Suivi_Séries3.xls
    159 KB · Affichages: 30
Dernière édition:

Discussions similaires

Réponses
2
Affichages
787

Statistiques des forums

Discussions
312 198
Messages
2 086 146
Membres
103 130
dernier inscrit
FRCRUNGR