Ecriture VBA qui ne fonctionne plus une fois la feuille protégée

Bonjour à tous,

Je me permet de vous solliciter parce que j'ai utilisé une écriture VBA proposée sur le forum pour empêcher le copier-coller dans une cellule. En effet, il y a sur celle-ci une liste déroulante et on ne peut écrire directement dans cette cellule directement sans choisir une valeur de la liste déroulante. Cependant, on peut contourner cela en réalisant un copier coller.
Mon problème : lorsque j'execute l'écriture VBA que j'ai trouvé, celle ci fonctionne lorsque la feuille n'est pas protégée mais ne fonctionne plus lorsqu'elle protégée.
Quelqu'un pourrait t'il m'aider à résoudre ce problème?
Je vous remercie d'avance

Voilà le code :

Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20200903
Dim xValue As String
Dim xCheck1 As String
Dim xCheck2 As String
Dim xRg As Range
Dim xArrCheck1() As String
Dim xArrCheck2() As String
Dim xArrValue()
Dim xCount, xJ As Integer
Dim xBol As Boolean
' If Target.Count > 1 Then
' Exit Sub
' End If
xCount = Target.Count
ReDim xArrCheck1(1 To xCount)
ReDim xArrCheck2(1 To xCount)
ReDim xArrValue(1 To xCount)
Application.EnableEvents = False
On Error Resume Next
xJ = 1
For Each xRg In Target
xArrValue(xJ) = xRg.Value
xArrCheck1(xJ) = xRg.Validation.InCellDropdown
xJ = xJ + 1
Next

Application.Undo

xJ = 1
For Each xRg In Target
xArrCheck2(xJ) = xRg.Validation.InCellDropdown
xJ = xJ + 1
Next

xBol = False
For xJ = 1 To xCount
If xArrCheck2(xJ) <> xArrCheck1(xJ) Then
xBol = True
Exit For
End If
Next

If xBol Then
MsgBox "The selected cells containg data validation drop-down lists, no pasting allowed."
Else
xJ = 1
For Each xRg In Target
xRg.Value = xArrValue(xJ)
xJ = xJ + 1
Next

End If

Application.EnableEvents = True
End Sub

Bonjour

Un extrait de ton fichier serait le bienvenu ,pour y voir plus clair

Crdlt

Merci pour ta réponse Joco7915 mais maleureusement je ne peux pas partager mon fichier pour des raisons de confidentialité.

Bonjour il suffit d'enlever et remettre la protection en début et en fin de code.

Attention si vous avec des lignes avec Exit sub vous devrez inserer la ligne qui réactive la protection juste avant.

'Si protection avec mot de passe : 
Me.Unprotect "mon mot de passe"
'Suite de votre macro
Me.Protect "mon mot de passe"
End Sub

'Si protection sans mot de passe
Me.Unprotect
'Suite de votre code
Me.Protect
End Sub

Merci pour ta réponse Xmenpl!

J'ai donc ajouté Me.Unprotect "Password" juste après la première ligne (avant Update by Extendoffice) et Me.Protect"Password" avant le End Sub, malheureusement le problème persiste.

Je joins un fichier qui représente le problème que je rencontre.

6book1.xlsm (19.37 Ko)

Je ne vois pas les lignes de protection et déprotection dans votre exemple ;

Je ne vois don cpas non plus le mot de passe de la feuill 1

Rechercher des sujets similaires à "ecriture vba qui fonctionne fois feuille protegee"