Générer liste à partir d'infos sur autre page

00seb

XLDnaute Nouveau
Bonjour,

J'aimerais créer une macro (ou si il y a une solution avec juste des formules excel cela me va très bien) qui me permette de générer une liste de noms à partir de données se trouvant sur une autre feuille du même classeur.

Sur une page 1 j'ai :
- 1ere colonne: une liste de noms
- 2eme colonne : information relatif au nom (Yes ou No)

Sur la page 2 j'aimerais afficher dans une colonne que la liste de noms ayant l'info Yes.

Merci pour votre aide!

PS: en PJ un exemple concret
 

Pièces jointes

  • exemple 1.xlsx
    13.2 KB · Affichages: 35
  • exemple 1.xlsx
    13.2 KB · Affichages: 38
  • exemple 1.xlsx
    13.2 KB · Affichages: 48
Dernière édition:

job75

XLDnaute Barbatruc
Re : Générer liste à partir d'infos sur autre page

Bonjour 00seb, bienvenue sur XLD,

Je suppose que les feuilles se nomment Feuil1 (source) et Feuil2 (destination).

1) Par formule

Entrez en A1 de Feuil2 cette formule matricielle, à tirer vers le bas :

Code:
=SI(LIGNES(A$1:A1)>NB.SI(Feuil1!B$1:B$100;"Yes");"";INDEX(Feuil1!A:A;PETITE.VALEUR(SI(Feuil1!B$1:B$100="Yes";LIGNE(B$1:B$99));LIGNES(A$1:A1))))
A valider par Ctrl+Maj+Entrée.

2) Par macro VBA avec le filtre automatique

Allez dans VBA (Alt+F11) et placez ce code où vous voulez :

Code:
Sub Liste()
Application.ScreenUpdating = False
With Sheets("Feuil1") 'feuille source
  .AutoFilterMode = False
  .[1:1].Insert 'insertion de ligne si pas de ligne de titres
  .[B:B].AutoFilter 1, "Yes" 'filtre automatique
  With Sheets("Feuil2") 'feuille de destination à adapter
    .[A:A].Clear
    Sheets("Feuil1").[A:A].SpecialCells(xlCellTypeVisible).Copy .[A1]
    .[1:1].Delete 'suppression ligne
  End With
  .[1:1].Delete 'suppression ligne
  .AutoFilterMode = False
End With
End Sub
S'il y a des titres en ligne 1:1 supprimez les codes d'insertion ou de suppression de cette ligne.

A+
 
Dernière édition:

00seb

XLDnaute Nouveau
Re : Générer liste à partir d'infos sur autre page

Bonjour job75,

Merci pour ta réponse cependant je ne dois pas être très doué car je n'arrive pas à faire fonctionner tes formules.
Effectivement la "feuil1" est la feuille source et la deuxième est celle de destination (elles ont chacune des titres sur la première ligne)
La liste de noms sur la feuille 1 se trouve en colonne A et les infos associées (YES/NO) en colonne G

Juste avant ta réponse j'avais rajouté un fichier exemple en PJ.
 

job75

XLDnaute Barbatruc
Re : Générer liste à partir d'infos sur autre page

Re,

Formule et code VBA adaptés à votre fichier

A+.
 

Pièces jointes

  • exemple(1).xls
    40 KB · Affichages: 36
  • exemple(1).xls
    40 KB · Affichages: 34
  • exemple(1).xls
    40 KB · Affichages: 42

job75

XLDnaute Barbatruc
Re : Générer liste à partir d'infos sur autre page

Re,

J'avais écrit un peu vite la formule (matricielle) en C2 :

Code:
=SI(LIGNES(A$2:A2)>NB.SI('List 1'!C$2:C$100;"Yes");"";INDEX('List 1'!A:A;PETITE.VALEUR(SI('List 1'!C$2:C$100="Yes";LIGNE(C$2:C$100));LIGNES(A$2:A2))))
Elle ne restera pas correcte si l'on supprime des lignes sur l'une ou l'autre feuille.

Il vaut mieux utiliser :

Code:
=SI(LIGNES(C$2:C2)>NB.SI('List 1'!C$2:C$100;"Yes");"";INDEX('List 1'!A:A;PETITE.VALEUR(SI('List 1'!C$2:C$100="Yes";LIGNE('List 1'!C$2:C$100));LIGNES(C$2:C2))))
Fichier (2).

A+
 

Pièces jointes

  • exemple(2).xls
    40 KB · Affichages: 49
  • exemple(2).xls
    40 KB · Affichages: 51
  • exemple(2).xls
    40 KB · Affichages: 49

Discussions similaires