Problème avec protection de la feuille

Bonsoir,

Me revoilà avec mes tracas lol
J’ai créé un formulaire, où tout se passe bien de la saisie à l’enregistrement des données.
Mais dès que je protège ma feuille, la macro s’exécute en transfert de données, mais ne vide plus les cases et m’affiche le message ci-dessous.


Je ne sais pas ce qui coince.
Si vous pouvez m’aider…
Merci d’avance…
Récap CK groupés.xlsm (23,0 Ko)

Hello
Pour faire simple, il suffisait de rajouter dans la macro
un "Unprotect"avant l’effacement des données et un "Protect" tout de suite apres
Récap CK groupés.xlsm (25,5 Ko)

1 « J'aime »


Hello @taz067

Merci. il y avait encore plus simple pfffff
Quand j’i défini ma macro, j’ai sélectionné toutes les cellules de mon formulaire, même celle verrouillées. Alors forcément…
J’ai refait mon chemin, en ne sélectionnant que les cellules concernées, et là… ça fonctionne…
Maintenant je suis en conflit avec l’une de mes cellules, qui refuse la mise en forme conditionnelle Grrrrrr
Je veux qu’elle se mette en bleu et le texte en blanc, si la cellule validation est « vrai ».
Donc je mets « =Validation » dans la formule, et quand tous les champs sont validés, rien ne change… %ais mon excel déraille. J’avais fini ma mise en page, et voilà qu’il m’a viré une couleur, décalé du texte… Je deviens cinglé lol
Mais bon pas grave, j’ai changé le bouton enregistrer qui ne change pas de couleur, et tout fonctionne.
Merci du coup de main.
Bonne nuit

concernant la protection d’une feuille et les manipulations avec VBA, si on met ceci dans le module « Thisworkbook », la feuille « Formulaire » reste protégée tout le temps, mais VBA a la permission de dépasser cette protection (pas tout à fait, problème avec quelques actions pour les TS)
Donc, si on fait ce « userinterfaceonly », VBA peut (presque) tout faire jusqu’au moment où le fichier est fermé. Si on réouvre, on doit renouveller cela, donc en mettant cela dans « workbook open » …

Private Sub Workbook_Open()
     With Sheets("Formulaire")
          .Unprotect
          .Protect userinterfaceonly:=True
     End With
End Sub
1 « J'aime »