Autorisation d'ecrire si cellule vide

Résolu
dave -  
eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   -
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. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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. dave
       
      franchement t'assure mec ! c'est parfait !
      0
  2. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    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
  3. dave
     
    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. yclik Messages postés 3874 Date d'inscription   Statut Membre Dernière intervention   1 609
       
      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. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Bonjour,

      ????
      Une cellule avec formule n'est pas vide
      Une MFC ne peut pas changer le verrouillage d'une cellule.
      eric
      0
  4. dave
     
    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. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      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
      1. dave > eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention  
         
        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
      2. dave > dave
         
        je viens de tester et ça marche merci pour tout
        0
      3. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281 > 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
        0