Option Explicit
Public flag As Boolean
Private Sub ComboBoxLangue_Change()
Dim Temp As Integer
If flag = True Then Exit Sub
flag = True
Temp = CInt([ChxMois])
Application.ScreenUpdating = False
'2 petits bidouillages "brute de décoffrage" afin d'éviter les références circulaires
[NumChxLangue].Copy
[NumChxLangueBis].Select
Selection.PasteSpecial Paste:=xlPasteValues
[NomChxLangue].Copy
[NomChxLangueBis].Select
Selection.PasteSpecial Paste:=xlPasteValues
[CR3].Select
Application.CutCopyMode = False
'Change le contenu du label suivant la langue sélectionnée
Select Case [NumChxLangue].Value
Case 1: EtiquetteIdioma.Caption = "Langue"
Case 2: EtiquetteIdioma.Caption = "Language"
Case 3: EtiquetteIdioma.Caption = "Idioma"
End Select
ActiveSheet.Shapes("EtiquetteIdioma").ZOrder msoSendToBack 'Place le label en arrière plan (derrière le ComboBox)
'***** Actualisation Liste ComboBoxMeses ***** [ChxMois]
'Supposons que nous ayons séleccionné le mois de "Juin" (= 6) dans le ComboBox
'de la feuille "Intro".
'Ça Marche très bien si on met pour le paramètre "SelectListe"
'(dans la macro "ActualisationCombo") la valeur correspondante (= 6) :
'Call ActualisationCombo("ComboBoxMeses", [ListeComboBoxMeses], 2, , 6) '--> OK
'En revanche, si au lieu de 6 nous mettons [ChxMois] dont la valeur est pourtant 6,
'alors plus rien ne marche :
Call ActualisationCombo("ComboBoxMeses", [ListeComboBoxMeses], 2, , Temp)
Sheets(1).Select
Application.ScreenUpdating = True
flag = False
End Sub