OVH Cloud OVH Cloud

DonnéesValidation : Ne pas autoriser les formules

8 réponses
Avatar
Nicolas B.
Bonjour,

Encore un petit problème :

Est-il possible par le biais de Données\Validation de refuser une formule
dans une cellule ?

Je n'ai aucune idée de la façon dont je peux m'y prendre...


Merci
--
Nicolas B.

Adresse @adresse.bidon.com invalide,
E-mail : www.cerbermail.com/?gAAILfkPsC

8 réponses

Avatar
AV
Est-il possible par le biais de DonnéesValidation de refuser une formule
dans une cellule ?


Validation n'acceptant pas (me semble-t-il) de fonction perso...
Une proc évènementielle ?

Private Sub Worksheet_Change(ByVal zz As Range)
If zz.Address <> "$A$1" Then Exit Sub
If zz.HasFormula Then
Application.EnableEvents = False
zz.Select: MsgBox "saisie de formules interdite !"
zz = ""
Application.EnableEvents = True
End If
End Sub

AV

Avatar
Nicolas B.
Merci AV, ça marche.

J'espérais pouvoir le faire sans macros, mais ça n'a pas l'air d'être
possible.


A+
--
Nicolas B.

Adresse @adresse.bidon.com invalide,
E-mail : www.cerbermail.com/?gAAILfkPsC


Est-il possible par le biais de DonnéesValidation de refuser une
formule dans une cellule ?


Validation n'acceptant pas (me semble-t-il) de fonction perso...
Une proc évènementielle ?

Private Sub Worksheet_Change(ByVal zz As Range)
If zz.Address <> "$A$1" Then Exit Sub
If zz.HasFormula Then
Application.EnableEvents = False
zz.Select: MsgBox "saisie de formules interdite !"
zz = ""
Application.EnableEvents = True
End If
End Sub

AV



Avatar
garnote
Salut Nicolas,

Oui c'est possible avec un petit détour !

Supposons que je veuille interdire la saisie
de formules en A1.
Je me fais une fonction personnalisée :

Function cav(ici) As Boolean
'cav : cellule avec formule
cav = ici.Range("A1").HasFormula
End Function

J'entre Êv(A1) en B1 ou ailleurs et dans validation
de données : ±úUX

Il y a tout de même un tipeu de code !

Serge

"Nicolas B." a écrit dans le message de
news:
Merci AV, ça marche.

J'espérais pouvoir le faire sans macros, mais ça n'a pas l'air d'être
possible.


A+
--
Nicolas B.

Adresse @adresse.bidon.com invalide,
E-mail : www.cerbermail.com/?gAAILfkPsC


Est-il possible par le biais de DonnéesValidation de refuser une
formule dans une cellule ?


Validation n'acceptant pas (me semble-t-il) de fonction perso...
Une proc évènementielle ?

Private Sub Worksheet_Change(ByVal zz As Range)
If zz.Address <> "$A$1" Then Exit Sub
If zz.HasFormula Then
Application.EnableEvents = False
zz.Select: MsgBox "saisie de formules interdite !"
zz = ""
Application.EnableEvents = True
End If
End Sub

AV







Avatar
garnote
Salut Nicolas,

Oui c'est possible avec un petit détour !
Supposons que je veuille interdire la saisie
de formules en A1.
Je me fais une fonction personnalisée :

Function caf(ici) As Boolean
'caf : cellule avec formule
caf = ici.Range("A1").HasFormula
End Function

J'entre Êf(A1) en B1 ou ailleurs et dans validation
de données : ±úUX

Il y a tout de même un tipeu de code !

Serge


"Nicolas B." a écrit dans le message de
news:
Merci AV, ça marche.

J'espérais pouvoir le faire sans macros, mais ça n'a pas l'air d'être
possible.


A+
--
Nicolas B.

Adresse @adresse.bidon.com invalide,
E-mail : www.cerbermail.com/?gAAILfkPsC


Est-il possible par le biais de DonnéesValidation de refuser une
formule dans une cellule ?


Validation n'acceptant pas (me semble-t-il) de fonction perso...
Une proc évènementielle ?

Private Sub Worksheet_Change(ByVal zz As Range)
If zz.Address <> "$A$1" Then Exit Sub
If zz.HasFormula Then
Application.EnableEvents = False
zz.Select: MsgBox "saisie de formules interdite !"
zz = ""
Application.EnableEvents = True
End If
End Sub

AV











Avatar
Nicolas B.
Salut,

C'est ce que je cherchais : une solution en passant par DonnéesValidation
(plus facile à modifier, ne ralentit pas Excel, etc).

Merci beaucoup
:-)

--
Nicolas B.

Adresse @adresse.bidon.com invalide,
E-mail : www.cerbermail.com/?gAAILfkPsC


Salut Nicolas,

Oui c'est possible avec un petit détour !

Supposons que je veuille interdire la saisie
de formules en A1.
Je me fais une fonction personnalisée :

Function cav(ici) As Boolean
'cav : cellule avec formule
cav = ici.Range("A1").HasFormula
End Function

J'entre Êv(A1) en B1 ou ailleurs et dans validation
de données : ±úUX

Il y a tout de même un tipeu de code !

Serge

"Nicolas B." a écrit dans le
message de news:
Merci AV, ça marche.

J'espérais pouvoir le faire sans macros, mais ça n'a pas l'air d'être
possible.


A+
--
Nicolas B.

Adresse @adresse.bidon.com invalide,
E-mail : www.cerbermail.com/?gAAILfkPsC


Est-il possible par le biais de DonnéesValidation de refuser une
formule dans une cellule ?


Validation n'acceptant pas (me semble-t-il) de fonction perso...
Une proc évènementielle ?

Private Sub Worksheet_Change(ByVal zz As Range)
If zz.Address <> "$A$1" Then Exit Sub
If zz.HasFormula Then
Application.EnableEvents = False
zz.Select: MsgBox "saisie de formules interdite !"
zz = ""
Application.EnableEvents = True
End If
End Sub

AV







Avatar
garnote
Et pour le plaisir :

=NON(B1) ou ±=0 semblent également convenir.

;-)

Serge

"Nicolas B." a écrit dans le message de
news:
Salut,

C'est ce que je cherchais : une solution en passant par DonnéesValidation
(plus facile à modifier, ne ralentit pas Excel, etc).

Merci beaucoup
:-)

--
Nicolas B.

Adresse @adresse.bidon.com invalide,
E-mail : www.cerbermail.com/?gAAILfkPsC


Salut Nicolas,

Oui c'est possible avec un petit détour !

Supposons que je veuille interdire la saisie
de formules en A1.
Je me fais une fonction personnalisée :

Function cav(ici) As Boolean
'cav : cellule avec formule
cav = ici.Range("A1").HasFormula
End Function

J'entre Êv(A1) en B1 ou ailleurs et dans validation
de données : ±úUX

Il y a tout de même un tipeu de code !

Serge

"Nicolas B." a écrit dans le
message de news:
Merci AV, ça marche.

J'espérais pouvoir le faire sans macros, mais ça n'a pas l'air d'être
possible.


A+
--
Nicolas B.

Adresse @adresse.bidon.com invalide,
E-mail : www.cerbermail.com/?gAAILfkPsC


Est-il possible par le biais de DonnéesValidation de refuser une
formule dans une cellule ?


Validation n'acceptant pas (me semble-t-il) de fonction perso...
Une proc évènementielle ?

Private Sub Worksheet_Change(ByVal zz As Range)
If zz.Address <> "$A$1" Then Exit Sub
If zz.HasFormula Then
Application.EnableEvents = False
zz.Select: MsgBox "saisie de formules interdite !"
zz = ""
Application.EnableEvents = True
End If
End Sub

AV











Avatar
AV
C'est ce que je cherchais : une solution en passant par DonnéesValidation
(plus facile à modifier, ne ralentit pas Excel, etc).


Pour chaque cellule contenant cette "validation" tu es tributaire d'une autre
cellule contenant une formule faisant appel à une fonction perso (2 calculs)
donc pour ce qui du "ralentissement" d'XL..... bofff ;-)

Le mieux serait qu' XL autorise l'utilisation des fonctions persos dans
"Validation" !
XL 3000 ?

AV

Avatar
Nicolas B.
Pour chaque cellule contenant cette "validation" tu es tributaire
d'une autre cellule contenant une formule faisant appel à une
fonction perso (2 calculs) donc pour ce qui du "ralentissement"
d'XL..... bofff ;-)


Je pensais plutôt au ralentissement causé lors de la modification de
cellules qui n'ont rien à voir avec celle qui ne doit pas avoir de formules
(à cause du worksheet_change). Mais peut-être qu'Excel refait les calculs de
toutes les fonctions perso quelque soit la cellule modifiée dans la feuille,
ce qui reviendrait au même ?

Le mieux serait qu' XL autorise l'utilisation des fonctions persos
dans "Validation" !
XL 3000 ?


Au moins ;-)


A+
--
Nicolas B.

Adresse @adresse.bidon.com invalide,
E-mail : www.cerbermail.com/?gAAILfkPsC