Création d'une liste à partir d'une autre

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

rudymagny

XLDnaute Occasionnel
Bonsoir le forum,
Je voudrais créer une liste à partie d'une autre.
Dans la Feuil1 apparait une liste en colonne A avec plusieurs types de données et je voudrais que dans la Feuil2, il me crée une liste avec tous les item de la liste1 en supprimant les doublons.
Je ne sais pas si je suis clair alors je met un fichier en exemple

Merci d'avance à vous.

PS : je précise, je voudrais le faire en VBA. En sachant que j'ai commencé à côté à faire ça en comparant ligne par ligne mais ça prend trop de temps.
 

Pièces jointes

Re : Création d'une liste à partir d'une autre

J'ai trouvé un exemple de RENAUDER ici :
https://www.excel-downloads.com/thr...e-sans-doublon-par-ordre-alphabetique.119433/

Je l'ai adapté à mon exemple mais au résultat, il me supprimer la première occurence et la dernière!

Code:
Private Sub Workbook_Open()
Dim coll As Collection
Set coll = New Collection

Sheets("Général").Activate
'creation d'une liste sans doublons
Range([A2], [A65536].End(xlUp)).Select
For Each cell In Selection
    On Error Resume Next
    coll.Add cell.Value, CStr(cell.Value)
Next cell
On Error GoTo 0

For i = 1 To coll.Count - 1
    For j = i + 1 To coll.Count
        If coll(i) > coll(j) Then
            Swap1 = coll(i)
            Swap2 = coll(j)
            coll.Add Swap1, before:=j
            coll.Add Swap2, before:=i
            coll.Remove i + 1
            coll.Remove j + 1
        End If
    Next j
Next i

Sheets("Choix").Activate
Range("A2:B65535").Select
Selection.ClearContents
Range("A2").Select
For j = 1 To coll.Count - 1
      Cells(j, 1).Value = coll(j)
Next j
End Sub

quelqu'un peut il m'expliquer?

merci d'avance
 
Re : Création d'une liste à partir d'une autre

Bonsoir Jocelyn et merci pour la réponse.
Effectivement ça fonctionne très bien cependant ce fichier excel va servir à des gens qui ne connaissent même pas les fonctions alors j'ai fais ça à l'ouverture du fichier et comme ça c'est transparent pour eux.

Je préfèrerais le faire en vba dans le workbook_open .

merci quand même d'avoir pris un peu de temps.
 
Re : Création d'une liste à partir d'une autre

Par contre je tombe sur un problème maintenant, j'ai une partie du code qui ne passe plus à partir d'ici :

Code:
L1 = Sheets("Choix").Range("A65536").End(xlUp).Row

il ne détecte plus la dernière ligne depuis que la plage est dans une formule matricielle. que puis je faire pour détecter la dernière?
 
Re : Création d'une liste à partir d'une autre

Ami Gifois, BoisGontier, le forum XLD, Bonjour !!

Voici une solution alternative sans VBA ni formule matricielle !
Les utilisateurs ont simplement a rentrer les donnees Col A et ta liste de validation est actualisee suivant la plage dynamique definie au prealable.

Je te laisse experimenter. En esperant que cela te conviendra !!
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour