Autorisation d'ecrire si cellule vide

Résolu/Fermé
dave - 22 oct. 2019 à 11:56
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 - 19 déc. 2019 à 12:09
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

eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 212
Modifié le 24 oct. 2019 à 11:28
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é)


1
franchement t'assure mec ! c'est parfait !
0
via55 Messages postés 14402 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 avril 2024 2 702
22 oct. 2019 à 12:13
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
0
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...
0
yclik Messages postés 3589 Date d'inscription vendredi 25 juillet 2014 Statut Membre Dernière intervention 18 avril 2024 1 479
24 oct. 2019 à 09:49
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
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 212
24 oct. 2019 à 11:19
Bonjour,

????
Une cellule avec formule n'est pas vide
Une MFC ne peut pas changer le verrouillage d'une cellule.
eric
0
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
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 212
9 déc. 2019 à 14:16
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
0
dave > eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023
19 déc. 2019 à 11:57
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 ?
0
je viens de tester et ça marche merci pour tout
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 212 > dave
19 déc. 2019 à 12:09
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
0