[EXCEL] Extraire mot d'une liste
Expresso
-
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
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!
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:
- [EXCEL] Extraire mot d'une liste
- Liste déroulante excel - Guide
- Extraire une video youtube - Guide
- Extraire le son d'une vidéo - Guide
- Excel liste déroulante en cascade - Guide
- Mot de passe - Guide
3 réponses
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)
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)
ci dessous macro en gardant la zone nommée "fourniss" (version 1 ou 2)
https://www.cjoint.com/?dCmkPMKDIk
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
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!