ecrire dans une cellule malgré la protection de la feuille

altinea

XLDnaute Accro
Bonjour le Forum,

Je souhaiterai pouvoir, malgré la protection de la feuille, que mon code puisse inscrire les infos voulues dans la cellule.

Il s(agit de cellules verrouillées, d'autres ne le sont pas. Par contre ces cellules ne doivent pas êtres modifiables par l'utilisateur.

pourriez vous m'aider. ça bug où le code est en bleu

***Valisation des Checkbox, information inscrite dans celle du jour J ***
Private Sub CommandButton20_Click()
Dim Activité As String, i As Integer, Cel As Range
'nombre de checkbox, si on supprime ou on rajoute, penser à modifier le nombre ici
For i = 1 To 28
If Controls("CheckBox" & i) = True Then Activité = Activité & Controls("CheckBox" & i).Caption & ", "
Next
If Activité = "" Then GoTo Sortie
'plage de donnée spécifiée pour la prise en compte des calculs
For Each Cel In Range("E5:AY35")
If Cel.Value = Date Then Cel.Offset(0, 1) = Left(Activité, Len(Activité) - 2)
Next Cel
'desactive l'unserform
Sortie:
Unload tableau_bord_Psst
End Sub


Merci pour votre aide
 

Chris401

XLDnaute Accro
Re : ecrire dans une cellule malgré la protection de la feuille

Bonjour

Il te suffit de déverrouiller la feuille de temps de l'exécution de la macro

En début de code

Activesheet.Unprotect

En fin de code

Activesheet.Protect

Cordialement
Chris
 

Victor21

XLDnaute Barbatruc
Re : ecrire dans une cellule malgré la protection de la feuille

Bonjour, altinea.

Solution (Traduction Goo..le) préconisée par Chip PEARSON (Lien ici) :
Option UserInterfaceOnly

Lorsque vous verrouillez les cellules d'une feuille de calcul , que la protection s'applique aux opérations VBA ainsi que les actions de l'utilisateur . Si votre code VBA tente de modifier une cellule verrouillée , vous obtiendrez une erreur d'exécution 1004 . Une façon de contourner cela est de déprotéger la feuille avant les courses VBA pertinentes et reprotect après la VBA est terminée . C'est en quelque sorte une solution malpropre . Le meilleur moyen est d'utiliser le drapeau UserInterfaceOnly lorsque vous protégez la feuille via VBA . Vous pouvez spécifier UserInterfaceOnly uniquement dans le code VBA . Il n'y a aucun élément de l'interface utilisateur ( barre de commande , menu, etc ) pour cette option , vous devez utiliser VBA . Lorsque vous protégez une feuille avec UserInterfaceOnly , la protection est appliquée aux actions des utilisateurs ( essentiellement , clavier et opérations de souris ) , mais VBA est libre de modifier la feuille de calcul comme s'il n'y avait pas de protection . Le réglage UserInterfaceOnly n'est pas enregistrée lorsque vous fermez le classeur , vous devez définir lorsque le classeur est ouvert . Le meilleur endroit pour le faire est dans la procédure d'événement Workbook_Open . Par exemple,
Private Sub Workbook_Open ( )
. Me.Worksheets ( " Sheet1" ) Protect UserInterfaceOnly : = True
. Me.Worksheets ( " Sheet2 " ) Protect UserInterfaceOnly : = True
. Me.Worksheets ( " Sheet3 " ) Protect UserInterfaceOnly : = True
End Sub

Ce code doit être placé dans le module de code ThisWorkbook de projet VBA du classeur .
 

Discussions similaires

Statistiques des forums

Discussions
312 305
Messages
2 087 078
Membres
103 455
dernier inscrit
saramachado