Bonjour,
J'ai crée une macro que j'ai affecté à une forme (=un bouton) pour enregistrer chaque cellules non verrouillées d'une plage de cellules situé sur ma Feuil1, dans un tableau situé sur une autre feuille (en gros) et les nouveaux enregistrements s'incrémentent.
Le problème est que je tiens à protéger les feuilles et que ma macro marche tout le temps SAUF quand on clique sur le bouton et que les deux feuilles sont protégées. Car oui, elle marche : pas à pas et quand on l'Exécute et le bouton lui marche quand rien n'est protégé ou quand au moins une des deux feuilles n'est pas protégé.
Excel ne m'indique jamais aucune erreur et je n'ai trouvé aucune réponse sur Internet, alors la réponse est peut être évidente mais il me faut la connaître et la comprendre. J'ai essayé de trouver le problème à ma sauce, est je pense fortement que c'est au niveau de ma boucle, l'utilisation de ma variable "C" DANS la boucle.
Si on pouvait m'aider s'il vous plait, merci d'avance :)
Voici mon code et mon fichier :
Sub Enregistrer()
Dim C As Range, X As Integer
Dim NomFeuille As String
Dim Ligne As Integer
NomFeuille = ActiveSheet.Name
Set f = Sheets(NomFeuille)
Set bd = Sheets("Bd_" & NomFeuille)
'déprotéger feuille
bd.Unprotect
f.Unprotect
X = 1
'la ligne est égal à la fin du tableau, pour incrémenter les données
Ligne = bd.Range("b1").CurrentRegion.Rows.Count + 1
For Each C In Range("E1:F3")
'PROBLEME
If C.Locked = False Then
bd.Cells(Ligne, X) = C
'PROBLEME
X = X + 1
End If
Next
'protéger feuille
bd.Protect
f.Protect
End Sub