Bonjour,

Dans un programme, je récupère une liste de nom d'un autre fichier Excel, je supprime les doublons et je lance un UserForm qui à partir de cette liste va créer une liste déroulante dans laquelle l'utilisateur va pouvoir choisir un nom. Le nom choisi est alors récupéré par le programme principal qui se poursuit. Voici le morceau du programme principal qui pose souci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 DerLigne = Workbooks(2).Sheets(1).Range(Cells(4, 2), Cells(Rows.Count, 2)).End(xlDown).Row
    With Workbooks(2).Sheets(1)
        Range(Cells(4, 2), Cells(DerLigne, 2)).Copy
        ThisWorkbook.Sheets("Circo").Cells(2, 1).PasteSpecial Paste:=xlPasteValues
    End With
    ThisWorkbook.Sheets("Circo").Range("A:A").RemoveDuplicates Columns:=1, Header:=xlYes
    ActiveSheet.Range("D10").Select
   
        'Choix de la Circo

    Load UserForm1
    UserForm1.Show
Tout se passe comme je veux jusqu'à la ligne en rouge. La suppression des doublons se fait parfaitement, mais il refuse de sélectionner une autre case quelque soit la méthode utilisée et du coup, le UserForm ne se lance pas. En revanche, si je lance le programme en pas à pas avec la touche F8, la sélection se fait et je n'ai pas de problème avec le UserForm. Je ne comprends pas pourquoi il fonctionne en pas à pas et pas en lancement normal. Une idée ? Je ne vois pas non plus comment faire autrement pour éviter ce plantage.

Et voici le code du UserForm :
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
Private Sub ComboBox1_Change()
CommandButton1.Enabled = True
End Sub

Private Sub CommandButton1_Click()
Exdial = True
NomCirco = ComboBox1.Value
Unload UserForm1
End Sub

Private Sub CommandButton2_Click()
Exdial = False
NomCirco = ""
Unload UserForm1
End Sub


Private Sub UserForm_Initialize()
' rechercher le dernier ligne des circo
NumLigne = 10
'charger la liste des circo dans le combobox
ComboBox1.RowSource = Sheets("Circo").Name & "!" & Range("A2:A" & NumLigne).Address
'empêcher de continuer tant que la circo n'est pas sélectionné
CommandButton1.Enabled = False

End Sub
Quand le UserForm plante, c'est au niveau de la ligne en rouge. Il ne reconnaît pas semble-t-il la méthode RowSource.

Merci d'avance pour votre aide
Bonne journée