Bonjour,
Débutant confirmé , je consulte régulièrement les forums de developpez.net avec beaucoup de plaisir et de bonheur. J'en profite pour adresser un grand bravo à toute l'équipe et aux bénévoles !
Cette fois ci ma recherche est restée infructueuse...

Voici mon problème :
J'ai un Userform (FormCPVille) avec 2 Conbobox (ComboVille et CodePostal) qui sont liés et qui vont piocher leurs données dans une feuille excel.
Nom : FormCPVille.png
Affichages : 1566
Taille : 8,5 Ko
Comment exécuter mon code de fin (actuellement déclenché par le bouton "Validation") dès qu'une sélection a été effectuée dans l'un des Combobox ?
J'ai essayé plusieurs solutions sans succès (événements Exit, Enter, AfterUpdate)

Les 2 Combobox et le bouton "validation" sont alimentés par le code suivant :
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
 
Private Sub B_validation_Click()
'appel de la fonction de Validation
Call ValidationCPVille
 
End Sub
Private Sub ComboVille_Change()
 On Error Resume Next
 If ActiveControl.Name <> "ComboVille" Then Exit Sub
 On Error GoTo 0
 If Me.ComboVille.ListIndex = -1 And _
     IsError(Application.Match(Me.ComboVille, Application.Index(ListeVille, , 1), 0)) Then
     Dim b()
     Me.CodePostal = ""
     clé = UCase(Me.ComboVille) & "*"
     n = 0
     For I = LBound(ListeVille) To UBound(ListeVille)
       If UCase(ListeVille(I, 1)) Like clé Then
         n = n + 1: ReDim Preserve b(1 To 2, 1 To n)
         b(1, n) = ListeVille(I, 1): b(2, n) = ListeVille(I, 2)
       End If
      Next I
      If n > 0 Then
        ReDim Preserve b(1 To 2, 1 To n + 1)
        Me.ComboVille.List = Application.Transpose(b)
        Me.ComboVille.RemoveItem n
      End If
      Me.ComboVille.DropDown
   Else
      On Error Resume Next
      Me.CodePostal = Me.ComboVille.Column(1)
   End If
End Sub
 
Private Sub CodePostal_Change()
 On Error Resume Next
 
 If ActiveControl.Name <> "CodePostal" Then Exit Sub
 On Error GoTo 0
 If Me.CodePostal.ListIndex = -1 And _
     IsError(Application.Match(Me.CodePostal, Application.Index(ListeVille, , 2), 0)) Then
     Dim b()
     clé = UCase(Me.CodePostal) & "*"
     n = 0
     For I = LBound(ListeVille) To UBound(ListeVille)
       If UCase(ListeVille(I, 2)) Like clé Then
         n = n + 1: ReDim Preserve b(1 To 2, 1 To n)
         b(1, n) = ListeVille(I, 2): b(2, n) = ListeVille(I, 1)
       End If
      Next I
      If n > 0 Then
        ReDim Preserve b(1 To 2, 1 To n + 1)
        Me.CodePostal.List = Application.Transpose(b)
        Me.CodePostal.RemoveItem n
      End If
      Me.CodePostal.DropDown
   Else
      On Error Resume Next
      Me.ComboVille = Me.CodePostal.Column(1)
   End If
End Sub
PS : Ce code est adapté d'un code trouvé sur Internet ; je remercie l'auteur originel.

Merci pour votre aide