[EXCEL] Extraire mot d'une liste

Expresso -  
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
Sur EXCEL, j'utilise un tableau trié sur la Feuille1. Dans ce tableau il y a une colonne "Fournisseurs" ou apparaissent tous les fournisseurs en fonction des commandes, donc le même fournisseur peut apparaître plusieurs fois dans cette colonne.
Sur la feuille 2, j'ai un tableau de calcul. Celui-ci a une colonne fournisseur, ou doivent apparaître les noms de la Feuille1 mais qu'une seule fois.

Comment faire?

Si j'ai pas été assez claire, demandez moi!
A voir également:

3 réponses

michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
Bonjour,
regarde si ça te convient:
https://www.cjoint.com/?dBsICtl7I4
0
Expresso
 
Oui c'est parfait! ca marche, merci!

Par contre, j'aimerai pouvoir nommer la colonne "fourniss" jusqu'à la dernière cellule non-vide. C'est à dire qu'il y aura plusieurs noms de fournisseurs, et il faudrait que la toute la colonne A à partir de A3 soit nommée "fourniss"

J'ai vu des réponses en macro et VBA mais c'est très très confus pour moi!
0
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
bonjour,

j'avoue ne pas trop comprendre l'utilité de nommer jusqu'au dernier entré...
https://www.cjoint.com/?dClMB3Jmgr
surtout que c'est une petite usine à gaz:
=DECALER(Feuil1!$A$3;;;EQUIV("zzzzzzzz";Feuil1!$A$3:$A$65536;1);)

comme je subodore que tu cherches à limiter l'espace dans la feuille 2, je t'ai mis la formule matricielle qui donne le nombre de fournisseurs (formule d'après Laurent Longre: http://xcell05.free.fr/ )
=SOMME(SI(fourniss<>"";1/NB.SI(fourniss;fourniss)))
et donc tu prévois le nombre de lignes + 30 à 40% d'extension possible

je t'envoie une proposition en VBA mais non justifiée à mon avis puisque il y a une solution possible par formule
(VBA valable si dernière ligne de fourniss > 3000 environ)
0
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
ci dessous macro en gardant la zone nommée "fourniss" (version 1 ou 2)

Option Explicit
Const col As Byte = 2 ' colonne de liste des fournisseurs
Const lig As Long = 3 'ligne de départ de liste fournisseurs
Const onglet As String = "feuil2" 'onglet de liste fournisseurs


Sub lister_fournisseur()
Dim coll As Collection
Dim cellule As Range
Dim cptr As Long

Set coll = New Collection
For Each cellule In Range("fourniss")
    On Error Resume Next
    coll.Add cellule.Value, cellule.Value
    On Error GoTo 0
Next

With Sheets(onglet)
    Application.ScreenUpdating = False
    For cptr = 1 To coll.Count
        Cells(lig + cptr - 1, col) = coll(cptr)
    Next
End With
Set coll = Nothing
End Sub


https://www.cjoint.com/?dCmkPMKDIk

0