[COLOR=Red][B]Private memCellule As Variant[/B][/COLOR]
[COLOR=Red][B]Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range("DilNbUXFl1, DilVolS1a, DilNbGrS1a, DilNbUXParGr1a, DilNbUXGet1a")) Is Nothing Then
'mémoriser la valeur de la cellule sélectionnée
memCellule = Target.Value
End If
End Sub[/B][/COLOR]
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
Cancel = True
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Dim cellRecherche
'Magic_Doctor
'Macros événementielles pour le contrôle des saisies
If Not Application.Intersect(Target, Range("DilNbUXFl1, DilVolS1a, DilNbGrS1a, DilNbUXParGr1a, DilNbUXGet1a")) Is Nothing Then
Application.EnableEvents = False
[COLOR=Red][B] 'chercher si une des cellules de la colonne D contient "? ? ?"
Set cellRecherche = Range("D:D").Find("? ? ?", , xlValues, xlWhole)
'si on a trouvé "? ? ?" dans une des cellule, remettre l'ancienne valeur dans la cellule active et quitter la macro
If Not cellRecherche Is Nothing Then
Target.Value = memCellule
GoTo fin
End If[/B][/COLOR]
On Error Resume Next
'Pour en venir à bout de l'épineux problème des cellules fusionnées
If Target = [DilNbUXFl1] Then
If Target.Value = "" Then GoTo fin
End If
'Vérifie si l'une des cellules de saisies contient "? ? ?"
Call VerifBourde1
If ControlBourde1 = 1 Then Target.Value = "": Range(NomCelda1).Select: GoTo fin
'Si la saisie est erronée (Y COMPRIS LA VALEUR 0) --> "? ? ?"
If ControleSaisie(Target, 1) = 1 Then Target = "? ? ?"
Target.Select
End If
' ***************************************
If Not Application.Intersect(Target, Range("DilNbUXGet1a")) Is Nothing Then
Application.EnableEvents = False
'Si la saisie est erronée (LA VALEUR 0 EST EN REVANCHE AUTORISÉE) --> "? ? ?"
If ControleSaisie(Target, 0) = 1 Then Target = "? ? ?"
Target.Select
End If
fin:
Application.EnableEvents = True
End Sub