OVH Cloud OVH Cloud

validation

2 réponses
Avatar
Manu
Bonjour,

Dans une formule que j'ai protéger par une validation "en avertissement" car
il pourrait y avoir des exceptions et que l'on doivent taper dessus, je
voudrais également empecher que l'à cellule puisse etre vide.
En fait, soit j'ai ma formule, soit je l'ecrase par quelque chose. Mais dans
tous les cas il faut que ce soit impossible de supprimer le contenu.
Possible or not possible ?

Merci
Manu

2 réponses

Avatar
Daniel
Bonsoir.
Dans un module :
Public ResFormule As String
Dans le code de ta feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Value = "" Then
MsgBox "Fais gaffe à ta saisie"
Application.EnableEvents = False
Target.Formula = ResFormule
Application.EnableEvents = True
Target.Offset(1, 0).Select
End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ResFormule = Target.Formula
End Sub

Note que la macro se déclenche pour toute les cellules de la feuille. Il
faut sans doute limiter le champ d'action.
Cordialement.
Daniel
"Manu" a écrit dans le message de news:

Bonjour,

Dans une formule que j'ai protéger par une validation "en avertissement"
car il pourrait y avoir des exceptions et que l'on doivent taper dessus,
je voudrais également empecher que l'à cellule puisse etre vide.
En fait, soit j'ai ma formule, soit je l'ecrase par quelque chose. Mais
dans tous les cas il faut que ce soit impossible de supprimer le contenu.
Possible or not possible ?

Merci
Manu



Avatar
JB
Bonsoir,

http://cjoint.com/?bpvvmcGoIA

On ne peut pas effacer (gère la sélection de plusieurs cellules)

Dim MémoAvant()
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ReDim MémoAvant(Target.Count)
For i = 1 To Target.Count
MémoAvant(i) = Target(i)
Next i
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
Application.EnableEvents = False
If Target(1) = "" Then
For i = 1 To UBound(MémoAvant)
Target(i) = MémoAvant(i)
Next i
End If
If Target(1) <> "" Then MémoAvant(1) = Target(1)
Application.EnableEvents = True
End If
End Sub

Private Sub Worksheet_Activate()
[A1].Select
End Sub

JB



Bonjour,

Dans une formule que j'ai protéger par une validation "en avertissement " car
il pourrait y avoir des exceptions et que l'on doivent taper dessus, je
voudrais également empecher que l'à cellule puisse etre vide.
En fait, soit j'ai ma formule, soit je l'ecrase par quelque chose. Mais d ans
tous les cas il faut que ce soit impossible de supprimer le contenu.
Possible or not possible ?

Merci
Manu