Combobox sans doublons/réinitialisation feuille

  • Initiateur de la discussion Benoit L
  • Date de début
B

Benoit L

Guest
Bonjour à tous,

Afin de produire un rapport, je dois copier une colonne de numéros de groupes dans une autre feuille.

Dans cette liste, il y a des doublons. J'élimine, dans un premier temps, les doublons et après avoir éliminer les doublons, alimenter un ComboBox.

Après avoir épuré la liste des doublons, je me retrouve avec une série de cellules vides qui viennent 'grossir' mon fichier. Je tente d'utiliser le code suivant :

Sub Réinit()
Dim LesCell As Worksheet
For Each LesCell In Worksheets
Dummy = LesCell.UsedRange(1)
Next LesCell
End Sub

pour éliminer ces cellules vides mais ça ne fonctionne pas...

Évidemment, l'idéal serait d'éliminer les doublons directement lors de l'alimentation du combobox sans avoir à copier la liste dans une autre feuille mais je ne sais pas si c'est possible.

Est-ce qu'il existe un petit bout de code autre que celui-ci pour 'vider' une feuille des cellules 'inutiles' ou s'il est possible d'alimenter un combobox en éliminat automatiquement les doublons ???

Merci à tous pour votre aide si précieuse...
 

Luki

XLDnaute Accro
bonsoir Benoit,

j'ai eu un cas un peu similaire, avec un Listbox.

je l'ai rempli par 'ListBox.addItem'

For each Macellule in Marange

if Macellule<>'' then
ListBox.additem Macellule.value
end if

next


Un truc comme ça de mémoire...
Je pense que ça marche aussi pour un Combo.


A+
 

pat1545.

XLDnaute Accro
Salut,

pour enlever les lignes vides:

Sub DetruireLignesVides() ' Commencer par le bas
DerniereLigne = ActiveSheet.UsedRange.Rows.Count
Application.ScreenUpdating = False
For r = DerniereLigne To 1 Step -1
If Application.CountA(Rows(r)) = 0 Then Rows(r).Delete
Next r
ActiveSheet.UsedRange
End Sub


Patrick
 

myDearFriend!

XLDnaute Barbatruc
Bonsoir Benoit, Luki, Pat545.

Pour répondre à la première question de Benoit :
'Est-il possible d'alimenter un combobox en éliminant automatiquement les doublons ?'

Soit un ComboBox1 et les Numéros de Groupe dans la colonne A de la feuille 'Feuil1', je me sers d'une collection et de sa clé unique pour éliminer les doublons et compléter le ComboBox :
Sub CompleterComboSansDoublon()
Dim Db As New Collection
Dim TabTemp As Variant
Dim
L As Long, Verif As Long
      'Charge les Numéros de Groupe dans un tableau variant temporaire
      With Sheets('Feuil1')
            L = .Range('A65536').End(xlUp).Row
            TabTemp = .Range(.Cells(1, 1), .Cells(L, 1)).Value
      End With
      'Complétude du ComboBox1 en éliminant les doublons
      '(élimination des doublons basée sur un code de J.G. Hussey)
      On Error Resume Next
      ComboBox1.Clear
      Verif = 0
      For L = 1 To UBound(TabTemp, 1)
            Db.Add TabTemp(L, 1), Str(TabTemp(L, 1))
            If Verif <> Db.Count Then
                  ComboBox1.AddItem TabTemp(L, 1)
            End If
            Verif = Db.Count
      Next L
      On Error GoTo 0
End Sub
Cordialement.
 

Discussions similaires

Statistiques des forums

Discussions
312 576
Messages
2 089 863
Membres
104 293
dernier inscrit
blondo