Initialisation combobox

thierrylon

XLDnaute Nouveau
bonsoir,
j'aimerais savoir comment faire pour que lorsque j'active ma Feuil2 la valeur dans la combobox soit la valeur de la dernière cellule non vide de la colonne A Feuil1.
Voir fichier joint. Lorsque je bascule sur la feuille 2, j'aimerais que la valeur de la combobox soit 3. Et si possible que la liste soit toute les cellules non vide sans doublons (c'est-à-dire: 1 - 2 -3).
Merci d'avance.
 

Pièces jointes

  • Combobox.xls
    18.5 KB · Affichages: 45
  • Combobox.xls
    18.5 KB · Affichages: 48
  • Combobox.xls
    18.5 KB · Affichages: 50

matthieu33

XLDnaute Occasionnel
Re : Initialisation combobox

Bonsoir thierrylon et le forum,

Dans le fichier joint, tu trouveras une solution à ta demande.

@+
 

Pièces jointes

  • Combobox(1).zip
    10.6 KB · Affichages: 38
  • Combobox(1).zip
    10.6 KB · Affichages: 37
  • Combobox(1).zip
    10.6 KB · Affichages: 38

Cousinhub

XLDnaute Barbatruc
Re : Initialisation combobox

Bonjour thierrylon, matthieu

une autre solution
tu mets ceci dans l'évènement de feuille :

Code:
Private Sub Worksheet_Activate()
Set MonDico = CreateObject("Scripting.Dictionary")
With Sheets("Feuil2")
For Each cel In .Range(.Cells(1, 1), .Cells(.[A65000].End(xlUp).Row, 1))
    If Not MonDico.Exists(cel.Value) And cel <> "" Then
      MonDico.Add cel.Value, cel.Value
    End If
Next cel
ComboBox1.List = MonDico.items
End With
End Sub
 

bqtr

XLDnaute Accro
Re : Initialisation combobox

Bonsoir tous le monde,

Je mets quand même ma proposition :

Code:
Private Sub Worksheet_Activate()

Dim plg As Range, cell As Range
Dim col As New Collection, i As Integer, j As Integer, k As Integer

'vide la combobox
ComboBox1.Clear

'défini la plage de la feuille 1
Set plg = Sheets("Feuil1").Range("A1:A" & Sheets("Feuil1").Range("A65536").End(xlUp).Row)

'récupère les valeurs sans doublons
For Each cell In plg
  If cell <> "" Then
      On Error Resume Next
      col.Add cell, CStr(cell)
      On Error GoTo 0
  End If
Next cell

'Tri par odre alpha de la collection
For i = 1 To col.Count
     For j = 1 To col.Count
          If col.Item(i) < col.Item(j) Then
                temp = col.Item(i)
                col.Item(i) = col.Item(j)
                col.Item(j) = temp
          End If
     Next j
Next i

' pour chaque élément de la collection triée, remplissage de la combobox
For k = 1 To col.Count
   ComboBox1.AddItem col.Item(k)
Next k

'valeur par défaut de la combobox
ComboBox1.Value = 3

End Sub

Code à mettre dans le module de la feuille 2

Bonne soirée
 

Discussions similaires

Statistiques des forums

Discussions
312 563
Messages
2 089 681
Membres
104 252
dernier inscrit
dbsromaric