Empêcher modifications cellule

IRSJ Messages postés 25 Statut Membre -  
Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour tout le monde, voilà je vais y aller directement :lol: .

J'utilise quotidiennement Excel, j'aimerai une application y incluse (Excel 2013) ou une autre méthode qui me permettrait d'écrire une et une seule fois pour toute sans posibilité de modification dans une se ses colonnes.

Je sais si une telle option existe mais j'en ai vraiment besoin car ayant cherché sur tous les forums en vain :??: . Je m'en remet à vous. Merci.

2 réponses

  1. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Bonjour

    Une possibilité par macro

    En premier lieu déverrouiller toutes les cellules de la feuille ( Format de cellue - Protection - Décocher Verrouillé)

    Ensuit copier coller la macro dans le worksheet de la feuille (ALT+F11 pour ouvrir éditeur VBA, Double-clic sur feuille concernée dans arborescence)

    Private Sub Worksheet_Change(ByVal Target As Range)
    'recupèration lettre de la colonne d'entrée d'une valeur
    col = Split(Target.Address, "$")(1)
    'selection de la colonne
    Columns(col & ":" & col).Select
    ' déprotection de la feuille
    ActiveSheet.Unprotect
    ' Verouillage de la colonne selectionnée
    Selection.Locked = True
    ' Reprotection de la feuille
    ActiveSheet.Protect
    End Sub


    Cdlmnt
    Via

    "L'imagination est plus importante que le savoir." A. Einstein
    0
    1. IRSJ Messages postés 25 Statut Membre
       
      Bonjour Via55, je vais essayer ta méthode et t'en dire prochainement des nouvelles. Merci.
      0
    2. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 783
       
      Bonjour via55,

      Plus simplement :
      Private Sub Worksheet_Change(ByVal Target As Range)
      ' Déprotection de la feuille
      ActiveSheet.Unprotect
      ' Verrouillage de la ou des colonnes concernées 
      Target.EntireColumn.Locked = True
      ' Reprotection de la feuille
      ActiveSheet.Protect
      End Sub
      fonctionne aussi en cas de sélection multiple (et validation par Maj+Crtl+Entrée)


      Edit : j'ai aussi répondu trop vite, en réalité il vaut mieux écrire :
      Private Sub Worksheet_Change(ByVal Target As Range)
      ' Déprotection de la feuille
      Me.Unprotect
      ' Verrouillage de la ou des colonnes concernées
      Target.EntireColumn.Locked = True
      ' Reprotection de la feuille
      Me.Protect
      End Sub
      car la feuille peut ne plus être active au moment du change, c'est le cas lorsqu'on valide la saisie en cliquant sur un autre onglet.

      Cordialement
      0