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 :
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.
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
Et voici le code du UserForm :
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.
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
Merci d'avance pour votre aide
Bonne journée
Partager