Bonsoir,
Je cherche des solutions depuis 2 jours, mais tout ce que j'ai pu testé ne fonctionne pas...
Lorsque je choisie une société dans la liste d'un combobox : ComboBoxSté, cela modifie :
● la valeur d'un textbox : TextBoxEtage en indiquant l'étage correspondant
● et la valeur d'un autre combobox : (ComboBoxComp) en indiquant sa localisation (compartiment)
Certaines sociétés ont plusieurs localisations, je fais donc une boucle sur toutes ces localisations
Tout fonctionne bien, cependant la mise à jour de l'affichage du TextBoxEtage et du ComboBoxComp ne se fait que lorsque la procédure s'arrête
Avez-vous une solution pour que le TextBoxEtage et le ComboBoxComp affichent leur valeur successives pendant l'exécution de la macro ?
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 Sub ComboBoxSté_LostFocus() Application.ScreenUpdating = True If Len(ComboBoxSté) > 2 Then With Worksheets("Sociétés").Range("B3:B300") Set F = .Find(ComboBoxSté, LookIn:=xlValues) If Not F Is Nothing Then 'FirstAddress = F.Address ' pour ne boucler qu'une fois FirstName = ComboBoxSté Do ThisWorkbook.Adresse = F.Address TextBoxEtage = Worksheets("Sociétés").Range(F.Address).Offset(0, 2) ComboBoxComp = Worksheets("Sociétés").Range(F.Address).Offset(0, 3) ComboBoxSté = Worksheets("Sociétés").Range(F.Address) Set F = .FindNext(F) If F Is Nothing Then GoTo Fini Else: 'If F.Address <> FirstAddress Then ' pour ne boucler qu'une fois Situation = MsgBox("Localisation suivante ?", vbYesNo) If Situation = vbNo Then GoTo Fini Else: ComboBoxSté = FirstName TextBoxEtage = "" ComboBoxComp = "" End If End If Loop 'While F.Address <> FirstAddress ' pour ne boucler qu'une fois End If Fini: End With End If End Sub
Partager