Blocage cellule avec autorisation

Bonjour,

Je doit bloqué une cellule sur une feuille EXCEL afin que les utilisateur ne puissent écrire dedans excepté mes collègue et moi même.

En faite il s'agit d'une date de réception du document qui ne doit être remplis que par nous le jour de la réception.

Ce document étant re-transférer (une fois la date inscrite) à d'autres services, il est compliqué de le faire en manuscrit car ont serait obligés de re-scanner chaque document, la feuille faisant partie d'un classeur de 7 onglets.

Plusieurs cellules sont protéger par un mot de passe afin que personne n'écrive dedans ou ne modifie celles-ci.

Je n'arrive pas à bloqué la dite cellule "date de réception" en écriture et autoriser les personnes de mon service à écrire dedan.

J'ai essayé d'utiliser la fonction "permettre la modification de plages", remplis les autorisés et la case concerné

mais cela ne fonctionne pas !

Quelqu'un pourrait il me venir en aide ?

Merci à vous.

Cordialement

Bonjour,

Tu peux par exemple utiliser la procédure événementielle "SelectionChange()". Ici, c'est la cellule D5 qui est ciblée où le mot de passe est "MonJoliMotDePasse", si il n'est pas bon, sélectionne la cellule A1 interdisant de fait d'entrer une valeur en D5. Pour que le mot de passe soit invisible (pas pour les petits malins bien sûr !) tu peux protéger ton projet VBA :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    Dim MdP As String

    If Target.Address(0, 0) <> "D5" Then Exit Sub

    MdP = InputBox("Entrez le mot de passe autorisant la modification de la cellule !")

    If MdP <> "MonJoliMotDePasse" Then

        MsgBox "Mot de passe erroné !"
        Application.EnableEvents = False
        Range("A1").Select

    End If

    Application.EnableEvents = True

End Sub

Bonjour,

Merci, pour ta réponse rapide.

La cellule une fois bloqué, il me faudra systématiquement mettre le mots de passe pour la déverrouillé ? mettre la date et rebloqué la case ?

En faite je voudrai une méthode qui soit automatique en fonction du compte qui ouvre le document, que l'ont puisse écrire dans cette case et enregistrer le document.

Cdt,

Sur l'ouverture du classeur en fonction de l'utilisateur la feuille "Feuil1" (à adapter) est déverrouillée. A mettre dans le module du classeur (ThisWorkbook) :

Private Sub Workbook_Open()

    'à l'ouverture du classeur, déprotège selon le nom d'utilisateur
    Select Case Environ("USERNAME")

        Case "Nom1", "Nom3", "Nom5"
            Worksheets("Feuil1").Unprotect "MotDePasse"

    End Select

End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)

    'remet en place la protection de la feuille à la fermeture du classeur
    Worksheets("Feuil1").Protect "MotDePasse"

End Sub

Salut,

C'est une première pour moi de rentrer du code.

En faite je copie /colle dans visual basic feuille 1, et je modifie toute tes note en rouge ? c'est bien ça.

Je suis désolé si ma question est bête mais je ne suis pas du tout calé sur ce domaine.

Cdt,

Le code est à mettre dans le module du classeur et non dans le module d'une feuille. Double-clic sur "ThisWorkbook" et le coller dans la zone d'édition qui vient d'apparaître. Il te faut remplacer les "Nom1", "Nom3" et "Nom5" par les noms des utilisateurs ayant le droit de modifier le classeur. Les noms doivent être encadrés par des guillemets comme j'ai fais pour l'exemple et séparés par des virgules.

Salut,

J'ai copier/coller en changeant ce que tu ma dit, mais ne fonctionne pas :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim MdP As String

If Target.Address(0, 0) <> "G8" Then Exit Sub

MdP = InputBox("Entrez le mot de passe autorisant la modification de la cellule !")

If MdP <> "MP1" Then

MsgBox "Mot de passe erroné !"

Application.EnableEvents = False

Range("A1").Select

End If

Application.EnableEvents = True

End Sub

Private Sub Workbook_Open()

Select Case Environ("USERNAME")

Case "Dupont", "Mmichel", "sandre"

Worksheets("Feuil1").Unprotect "MP1"

End Select

End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)

Worksheets("Feuil1").Protect "MP1"

End Sub

Bonjour,

Tu dis :

La cellule une fois bloqué, il me faudra systématiquement mettre le mots de passe pour la déverrouillé ? mettre la date et rebloqué la case ?

En faite je voudrai une méthode qui soit automatique en fonction du compte qui ouvre le document, que l'ont puisse écrire dans cette case et enregistrer le document.

Dans ce cas, le code concernant le "blocage" de la cellule est à supprimer.

Concernant le code du ThisWorkbook, pour le tester, il te faut enregistrer et fermer le classeur en ayant au préalable verrouillé les cellules voulues de la feuille nommée "Feuil1" dans mon code, si elle porte un autre nom, il faut adapter puis le ré-ouvrir pour voir le fonctionnement sur les PC ayant l'autorisation et sur ceux ne l'ayant pas !

Rechercher des sujets similaires à "blocage autorisation"