Autorisation d'ecrire si cellule vide [Résolu]

Signaler
-
Messages postés
23499
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
24 septembre 2020
-
Bonjour,
Voici mon soucis :
je souhaiterai pouvoir interdire l’écriture d'une case à l’exception que celle ci soit vide (ou qu'une autre soit vide si c'est pas faisable).

Pouvez-vous me dire si c'est possible et si oui comment faire ?

merci d'avance

4 réponses

Messages postés
23499
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
24 septembre 2020
6 360
Re,

ex sur colonne B :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Column = 2 And Target.Row > 1 And Target.HasFormula And Target.Text <> "" Then Target.Offset(, 1).Select
End Sub

https://www.cjoint.com/c/IJyjzk88gl7
eric

PS : on pourrait même complété en remettant la formule si une saisie est effacée mais il faudrait le fichier de travail ( 3-4 lignes et anonymisé)


En essayant continuellement, on finit par réussir. 
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
franchement t'assure mec ! c'est parfait !
Messages postés
12697
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
24 septembre 2020
2 025
Bonjour

Que cherches-tu à protéger ?
- une cellules dans laquelle une valeur est déjà inscrite ?
- une cellule dans laquelle sera inscrite une valeur après la saisie de manière à ne plus pouvoir la modifier ?

Dans le 1er cas il s'agit simplement de verrouiller les cellules (clic droit Format de cellule) et de protéger la feuille (Révision dans le ruban)

Dans le 2nd cas il faut passer par une macro mais pour cela il faut un exemple de ton fichier à poster sur mon-partage.fr, copier le lien créé et revenir le coller ici

Cdlmnt
Via
bonjour,
merci de votre réponse;
en gros pour faire cours voici la formule en question :
=SIERREUR(SI(RECHERCHEV(D288;suivim;4;FAUX)="";"";(RECHERCHEV(D288;suivim;4;FAUX)));"")
"ce qui correspond a : recherche de quelque chose et si il n'y a rien alors tu n'affiche rien"

je souhaite que, quand il n'y a rien a afficher alors on peux modifier la cellule et par le meme coup, supprimer la formule dans la case mais si la formule au dessus renvoi un résultat quelconque alors la cellule est verrouillé et impossible de la modifier; a noté que cette formule se trouve dans la cellule en question

Après si il faut que je mette ma formule ailleurs, du fait que vu qu'il y a une formule, Excel va surement en déduire qu'il y a déjà quelque chose dans la case et du coup m'interdire l’écriture...
Messages postés
2100
Date d'inscription
vendredi 25 juillet 2014
Statut
Membre
Dernière intervention
25 septembre 2020
824
Bonjour
Voir peut ête en créant une mise en forme conditionnelle
si vide alors cellule déverrouillée
si non vide alors cellule verrouillée
Messages postés
23499
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
24 septembre 2020
6 360
Bonjour,

????
Une cellule avec formule n'est pas vide
Une MFC ne peut pas changer le verrouillage d'une cellule.
eric
Alors par contre je suis loin d’être expert en la matière mais je dois mettre ou tout ça ?
le plus simple c'est que je t'indique sur mon fichier ou je souhaite appliquer la formule.
lien du fichier : https://www.cjoint.com/c/ILjlgnHrsLe

Je souhaite que cette formule soit effective, dans l'onglet "saisie" dans toute la colonne description si c'est possible.
Faut-il modifier la formule ?
Merci d'avance
Messages postés
23499
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
24 septembre 2020
6 360
Bonjour,

je dois m'absenter.
Alt+F11 pour ouvrir VBA.
Double-cliquer sur le module de la feuille concernée à gauche
Coller le code à droite, enregistrer sous... choisir le type *.xlsm
eric
>
Messages postés
23499
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
24 septembre 2020

Donc si je l’écris tel quel, on ne pourra rien écrire dans la colonne 2 sauf si il n'y a rien dedans. Si j'ai bien compris c'est ça! ou pas ?
Donc si je veux changer de colonne, et passer de 2 a 5, je marque :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 5 And Target.Row > 1 And Target.HasFormula And Target.Text <> "" Then Target.Offset(, 1).Select
End Sub

c'est ça ?
je viens de tester et ça marche merci pour tout
Messages postés
23499
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
24 septembre 2020
6 360 > dave
Bonjour,

on ne pourra rien écrire dans la colonne 2 sauf si il n'y a rien dedans
et qu'elle contient une formule qui retourne qq chose <>""

parce que tes tests n'ont pas été concluants ?
Si c'est le cas, précise...
eric