Bonjour,
j'aimerais que quand j'exécute ma macro ça me propose une liste de villes prédéfinies du genre : Lyon, Paris et Marseille
Et quand je sélectionne Paris par exemple, ça enregistre cette valeur dans une variable.
Merci d'avance![]()
Bonjour,
j'aimerais que quand j'exécute ma macro ça me propose une liste de villes prédéfinies du genre : Lyon, Paris et Marseille
Et quand je sélectionne Paris par exemple, ça enregistre cette valeur dans une variable.
Merci d'avance![]()
Bonjour sebfch,
Etant donné que la demande n'est pas du tout explicite, je te propose ce bout de code qu'il te restera à adapter.
J'ai créé un UF avec une ComboBox et un CommandButton.
Voici le code :
Cela enregistre tout simplement sur Feuil1, en dernière ligne vide de la colonne A, la valeur sélectionnée après un clic sur le CommandButton.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 Option Explicit Private Sub CommandButton1_Click() If Me.ComboBox1.Value <> "" Then With Worksheets("Feuil1") .Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0) = Me.ComboBox1.Value Me.Hide End With Else MsgBox "Veuillez sélectionner une valeur." End If End Sub Private Sub UserForm_Initialize() Dim i As Integer, n As Integer Dim oTable() As String n = 3 ReDim oTable(1 To n) oTable(1) = "Paris" oTable(2) = "Marseille" oTable(3) = "Lyon" For i = LBound(oTable) To UBound(oTable) Me.ComboBox1.AddItem oTable(i) Next i Me.ComboBox1.ListIndex = -1 End Sub
Pour ouvrir le UF, tout simplement :
Je reste disponible.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Option Explicit Sub Ouvrir_UF() UserForm1.Show End Sub
Cordialement,
Kimy
Salut Kimy,
j'ai ce code pour l'instant :
J'ai créé un UF (listbox). Donc j'ai la liste de ma colonne mais j'ai les doublons aussi que j'aimerais enlever.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 Option Explicit Private Sub CommandButton1_Click() Dim ValeurARetourner As String ValeurARetourner = ListBox1.Value MsgBox (ValeurARetourner) Sites.Hide Unload Sites End Sub Private Sub CommandButton2_Click() Sites.Hide Unload Sites End Sub Private Sub UserForm_Initialize() Dim i As Integer, Derlig As Integer ListBox1.Clear Derlig = Sheets("Feuil2").Cells(65536, 3).End(xlUp).Row For i = 2 To Derlig ListBox1.AddItem Cells(i, 1).Value Next i For i = 0 To ListBox1.ListCount - 1 If ListBox1.Selected(i) = True Then ListBox1.Selected(i) = False End If Next i End Sub
Exemple : col 1 : Paris, lyon, marseille, lyon, paris
Dans ma liste j'ai les 2 paris et lyon et j'aimerais en avoir qu'un si possible
Une fois la variable stockée dans "ValeurARetourner", je vais m'en servir pour autre chose.
Salut,
si les éléments que tu ajoutes à ta combobox sont dans une plage de cellules,
tu peux copier cette plage sur une zone libre, et la préparer en supprimant
les doublons grâce à la méthode RemoveDuplicates
exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part range("A1").CurrentRegion.RemoveDuplicates
Bonjour Philippe,
je n'arrive à inclure ta formule dans mon code.
Un petit coup de main serait le bien venu.
Merci !![]()
sebfch,
Voici un petit exemple pour initialiser ton UF en créant une feuille et en y supprimant les doublons.
Je reste disponible.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 Private Sub UserForm_Initialize() Dim i As Long, j As Long Dim oTable() As String Me.ComboBox1.Clear Worksheets.Add.Name = "ToRemove" With Worksheets("Feuil2") For i = 2 To .Cells(.Rows.Count, 3).End(xlUp).Row Worksheets("ToRemove").Cells(i, 1) = .Cells(i, 3) Next i With Worksheets("ToRemove") Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp)).RemoveDuplicates Columns:=1, Header:=xlNo For j = 0 To .Cells(.Rows.Count, 1).End(xlUp).Row - 1 If .Range("A1").Offset(j, 0) <> "" Then Me.ComboBox1.AddItem .Range("A1").Offset(j, 0).Value End If Next j End With End With Application.DisplayAlerts = False Worksheets("ToRemove").Delete Application.DisplayAlerts = True Me.ComboBox1.ListIndex = -1 End Sub
Cordialement,
Kimy
Bonjour,
Avec un dictionnaire pour filtrer :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 Private Sub UserForm_Initialize() Dim Dico As Object Dim Plage As Range Dim Cel As Range With Worksheets("Feuil2") Set Plage = .Range(.Cells(2, 3), .Cells(.Rows.Count, 3).End(xlUp)) End With Set Dico = CreateObject("Scripting.Dictionary") For Each Cel In Plage If Dico.exists(Cel.Value) = False Then Dico.Add Cel.Value, Cel.Value ListBox1.AddItem Cel.Value End If Next Cel End Sub
Partager