Autorisation d'ecrire si cellule vide

Résolu
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

  1. Contributeur
    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
    1. franchement t'assure mec ! c'est parfait !
      0
  2. 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
    1. 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
      1. 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
      2. Contributeur
        Bonjour,

        ????
        Une cellule avec formule n'est pas vide
        Une MFC ne peut pas changer le verrouillage d'une cellule.
        eric
        0
    2. 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
      1. Contributeur
        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
      2. @eriiicDonc 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
      3. @daveje viens de tester et ça marche merci pour tout
        0
      4. Contributeur
        @daveBonjour,

        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