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 62 63 64 65 66 67 68 69 70 71 72
| Voir Problème ICI
lors denchaînement de boite de dialogue, de façon séquentielle,la boite de dialogue est parfois activée comme si lutilisateur avait cliqué sur la 1ère sélection.
situation améliorée par une temporisation dune seconde entre le Unload et lactivation.
' fonctionnement
En fonction de la colonne, la macro propose une liste de sélection
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, CANCEL As Boolean)
Dim intFin, I, L, C, intDeb, C_ini, C2 As Long
Dim Nom As Name
Dim strSheetName, strMetier, strPlage As String
Dim MonOnglet$, T$, T1$, COMMENTAIRE$, PRODUIT$, METIER$, FONCTION$, ACTIVITE$, T2$
Dim UNITE$, TYPEDECOUT$, RUBRIQUE$, CAUSEREWORK$
On Error GoTo Erreur:
Application.ScreenUpdating = False
L = Target.Row
C2 = Target.Column
C_ini = C2
If L >= intDeb And L <= intFin Then
While C2 > 0
C = C2
Select Case C
Case M_Produit
Case M_Metier
Case M_Activite
Case M_Fonction
T$ = Cells(L, M_Metier).Value & "_F"
If Boite_Selection.Initialise_Liste_Selection(T$, OngletConsignes$) = True Then
Boite_Selection.Caption = "Sélectionner FONCTION"
Load Boite_Selection
Boite_Selection.StartUpPosition = 2
Boite_Selection.Show
T1$ = Boite_Selection.TEXTE$
If T1$ <> "" Then
Unload Boite_Selection
Boite_Selection.PRODUIT.Value = Cells(L, M_Produit).Value
Boite_Selection.METIER.Value = Cells(L, M_Metier).Value
Boite_Selection.FONCTION.Value = Cells(L, M_Fonction).Value
Boite_Selection.ACTIVITE.Value = Cells(L, M_Activite).Value
Boite_Selection.UNITE.Value = Cells(L, M_Unite).Value
Boite_Selection.TYPE_COUT.Value = Cells(L, M_Type_Cout).Value
Boite_Selection.VENTILATION.Value = Cells(L, M_Rubrique).Value
T$ = Cells(L, M_Metier).Value & "_" & T1$ & "_SF"
Cells(L, C).Select
If Boite_Selection.Initialise_Liste_Selection(T$, OngletConsignes$) = True Then
Boite_Selection.Caption = "Sélectionner SOUS-FONCTION"
Load Boite_Selection
Boite_Selection.StartUpPosition = 2
Boite_Selection.Show
Problème ICI, de manière aléatoire:
La boite de dialogue est affichée
Sans intervention de lutilisateur la 1ère sélection est validée.
T2$ = Boite_Selection.TEXTE$
If T2$ <> "" Then
Cells(L, C).Value = T1$ & " / " & T2$
C2 = M_Unite
End If
End If
End If
Case M_Unite
Case M_Type_Cout
Case M_Rubrique
Case M_Cause_Rework
Case Else
End Select
Unload Boite_Selection
DoEvents
Application.Wait (Now + TimeValue("0:00:01"))
Wend
End If
Erreur:
Application.ScreenUpdating = True
End Sub |
Partager