Macro incompatible avec une feuille protégée

Bonjour à tous,

La macro ci-dessous fonctionne parfaitement mais dès que je mets la protection de la feuille elle ne fonctionne plus.

Quel solution puis-je appliquer svp ?

J'ai besoin que cette macro sélectionne la première cellule vide de la colonne B dans la plage B84:B126 avec une protection de la feuille.

Milles mercis

Sub NouvelleVisite1()
'
' Trouve la première cellule vide dans la plage visite
'
    Application.Goto Reference:="R84C2"
    Range("B84:B126").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.SpecialCells(xlCellTypeBlanks).Select
    ActiveCell.Select

End Sub

Bonjour Serji,

Une suggestion : écrire un bout de code en début de macro qui déprotège la feuille, et en fin de macro un bout de code qui remet la protection...

Tout ça peut se faire facilement avec l'enregistreur de macro, ce qui permet de choisir les options de protection de manière fine...

A+ Daniel

Dan42153 a écrit :

Bonjour Serji,

Une suggestion : écrire un bout de code en début de macro qui déprotège la feuille, et en fin de macro un bout de code qui remet la protection...

Tout ça peut se faire facilement avec l'enregistreur de macro, ce qui permet de choisir les options de protection de manière fine...

A+ Daniel

Merci Daniel. J'ai essayé mais la macro ouvre une fenêtre pour enlever le mot de passe, œuvre puis ouvre à nouveau la fenêtre pour remettre le mot de passe. Et j'aimerais éviter de devoir donner le mot de passe aux collaborateurs, sinon à quoi bon mettre un mdp ?

Et mettre le mot de passe dans la macro, en dur ?

Si tu protèges aussi le code, tu seras le seul à le voir et la fenêtre n'apparaîtra plus...

Si c'est possible je veux bien essayer, mais je ne sais pas comment faire. Mes notions sont très très très très et très petites. Voir quasi nulle...

Protection avec mot passe ("1234")

ActiveSheet.Protect Password:="1234", DrawingObjects:=True, Contents:=True, Scenarios:=True

Enlever la protection;

ActiveSheet.Unprotect ("1234")

Merci beaucoup, je vais essayer ça demain. Là je suis coincé, je n'ai qu'un mac et pas d'excel

Je reviens vers vous demain

Cordialement

Serji a écrit :

Là je suis coincé, je n'ai qu'un mac et pas d'excel

ô povre.

Bonjour j'ai le même problème, j'ai un tableau avec des onglets et dans ma page "intervenants" je rentre leurs noms qui se répercute sur les autres pages

Sur ma page Intervenants j'ai mon code et je ne sais pas si je renseigne correctement les lignes pour le mdp:

Private Sub Worksheet_Change(ByVal Target As Range)

ActiveSheet.Unprotect ("1234")
    Sheets("Janvier").Range("A9:A100").Value = Sheets("Intervenants").Range("A2:A100").Value
    Sheets("Février").Range("A9:A100").Value = Sheets("Intervenants").Range("A2:A100").Value
    Sheets("Mars").Range("A9:A100").Value = Sheets("Intervenants").Range("A2:A100").Value
    Sheets("Avril").Range("A9:A100").Value = Sheets("Intervenants").Range("A2:A100").Value
    Sheets("Mai").Range("A9:A100").Value = Sheets("Intervenants").Range("A2:A100").Value
    Sheets("Juin").Range("A9:A100").Value = Sheets("Intervenants").Range("A2:A100").Value
    Sheets("Juillet").Range("A9:A100").Value = Sheets("Intervenants").Range("A2:A100").Value
    Sheets("Août").Range("A9:A100").Value = Sheets("Intervenants").Range("A2:A100").Value
    Sheets("Septembre").Range("A9:A100").Value = Sheets("Intervenants").Range("A2:A100").Value
    Sheets("Octobre").Range("A9:A100").Value = Sheets("Intervenants").Range("A2:A100").Value
    Sheets("Novembre").Range("A9:A100").Value = Sheets("Intervenants").Range("A2:A100").Value
    Sheets("Décembre").Range("A9:A100").Value = Sheets("Intervenants").Range("A2:A100").Value
    ActiveSheet.Protect Password:="1234", DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub

ça ne fonctionne pas

J'ai essayé également ça mais ça marche pas

Sub MacroavecfeuilleProtect()
    ActiveSheet.Unprotect "lemotdepasse"
'Placez ici vos instructions
    ActiveSheet.Protect "lemotdepasse", True, True, True
End Sub

Bonsoir Rammy,

Peut-être vérifier que l'instruction ActiveSheet.Unprotect "lemotdepasse" s'applique à la bonne feuille, "Intervenants" ? Si la macro est déclenchée sur changement dans une feuille mensuelle, ça ne peut pas marcher...

A+ Daniel

Merci pour la rapidité,

Si j'ai bien compris je met ce code dans ma page protégé de janvier par exemple

Sub MacroavecfeuilleProtect()
    ActiveSheet.Unprotect "mdp"
Sheets("Janvier").Range("A9:A100").Value = Sheets("Intervenants").Range("A2:A100").Value
   ActiveSheet.Protect "mdp", True, True, True
End Sub

si c'est le cas ça marche pas. J'ai une erreur ou il me surligne en jaune dans la page intervenant

Sheets("Janvier").Range("A9:A100").Value = Sheets("Intervenants").Range("A2:A100").Value

Désolé je ne suis pas une flèche sur excel

Et que dit le message d'erreur ? Rien à voir avec les plages de cellules qui n'ont pas la même taille ?

erreur 1004

je vous transmet le dossier pour vous montrer de quoi il s'agit.

Beuah, Rammi, chez moi, ça passe sans erreur :

  • je me mets sur la feuille Janvier
  • j'exécute la Sub MacroavecfeuilleProtect() en mode pas à pas (F8)
  • je vais au bout de la macro sans erreur
  • les données de la feuille Intervenants se retrouvent bien sur la feuille Janvier...

Où est le problème ? Suis-je fatigué à ce point ?

Alors effectivement en mode pas a pas ça marche, mais pourquoi il ne se répercute pas directement lorsque je rentre les noms dans intervenants?

lorsque je rentre un nom sur la page intervenant j'ai une erreur.

Le pas a pas a marché la première fois avant de rentrer un nom après, j'ai une erreur maintenant

erreur 1004

ereur défini par l'application ou par l'objet

  • ajouté deux noms sur la feuille Intervenants
  • sélectionné la feuille Janvier
  • exécuté la macro (F5)

- pas de problème...

je rentre deux nom dans "intervenants"

je selection janvier

et je clique sur F5 ça m'ouvre la fenetre "atteindre"

lorsque je clique sur ma macro oui ça marche, mais le bute est que je n'ai pas besoin de cliquer ma macro, ou je met un bouton pour valider les noms sur ma première feuille

Oui, le principe, c'est quand même de rendre le lancement de la macro accessible facilement , éventuellement avec un bouton.

F5 sur une feuille, ça permet effectivement d'atteindre les plages de cellules nommées...

Je fais comment le bouton? J'ai essayé avec plusieurs code mais marche pas.

Rammy a écrit :

Je fais comment le bouton? J'ai essayé avec plusieurs code mais marche pas.

Dans le menu Développeur, choisir la commande "insertion" et là il y a plusieurs objets dont le premier en haut à gauche ; le bouton

Rechercher des sujets similaires à "macro incompatible feuille protegee"