• Initiateur de la discussion Initiateur de la discussion Phoenix
  • Date de début Date de début

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 !

P

Phoenix

Guest
Bonjour,
J'ai créé une liste box provenant de "Control ToolBox" pour valeur une zone nommée avec des valeurs redondantes.

Je souhaiterai supprimer les valeurs redondante de de la liste box, afin de ne pas avoir 10x la même valeur ?

Comment procéder ?

MErci d'avance
Phoenix
 
Bonsoir Phoenix,

Pourquoi mettre en source d'une listbox des valeurs redontantes pour vouloir les supprimer ensuite... D'où viennent tes données source ? si c'est d'une feuille traite d'abord ces données ? non ?

En fait tu n'indiques pas l'utilité de cette listbox dans son contexte...

Il doit bien y avoir un code beaucoup plus propre et moins lourd, car ton userform va en subir les conséquences rien qu'à l'initialisation...

Enfin si çà peut te faire démarrer sur une idée... Ce code va travailler sur deux feuilles,
Il va copier La sheets(1) Range A1 jusqu'à dernière ligne (qui sera donc ta base de données source avec des valeurs redondantes)...
Il va coller puis faire un sort, puis "nettoyer", puis recommencer et recommencer !!! (à cause de la redondance!)
Il va initialiser une listbox qui n'aura pas 10x la même valeur ...

Fais des essais Phoenix, ce n'est qu'un brouillon d'approche, faudrait alléger !!

Private Sub UserForm_Initialize()
Sheets(1).Select
Range("A1", Range("A1").End(xlDown)).Select
Selection.Copy
Sheets(2).Select
Range("A1").Select
ActiveSheet.Paste
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Orientation:=xlTopToBottom
For i = 1 To Selection.Cells.Count
For Each Cell In Selection
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Orientation:=xlTopToBottom
If Cells(i + 1, 1).Value = Cells(i, 1).Value Then
Cells(i + 1, 1).ClearContents
End If
Next
Next i
Sheets(2).Range("A1", Range("A1").End(xlDown)).Select
Source = Selection.Address(True, True, xlA1, True)
UserForm2.ListBox1.RowSource = Source
End Sub

Bon courage
@+Thierry








Bon Courage
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
XL 2016 liste
Réponses
10
Affichages
207
  • Question Question
Microsoft 365 Listbox
Réponses
3
Affichages
512
Retour