[EXCEL] Extraire mot d'une liste

Fermé
Expresso - 25 mars 2009 à 15:37
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 26 mars 2009 à 12:10
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 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 311
25 mars 2009 à 18:35
Bonjour,
regarde si ça te convient:
https://www.cjoint.com/?dBsICtl7I4
0
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 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 311
26 mars 2009 à 11:49
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 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 311
26 mars 2009 à 12:10
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