Verrouiller une feuille avec macro

Bonjour, est-il possible de verrouillé une feuille et de laisser la macro (insertion de ligne) fonctionner ?

Merci, cordialement.

Bonjour,

Pour verrouiller ta feuille par macro :

Thisworkbook.sheets("feuil1").Protect "code"

Ta feuille 1 sera protégée, le mot de passe pour la déverrouiller sera code.

Du coup pour déverrouiller ta feuille par macro :

Thisworkbook.sheets("feuil1").UnProtect "code"

Maintenant pour exécuter ta macro d'insertion de ligne tu as deux solutions :

- 1/ En verrouillant ta feuille par macro tu ajoute "Userinterfaceonly := True" comme argument, qui as pour objet de verrouiller la feuille mais que pour les interactions user.

Thisworkbook.sheets("feuil1").Protect "code" , userinterfaceonly:=True

Dans ce cas plus besoin de déverrouiller ta feuille pour la retoucher par macro. Mais cet argument est un peu capricieux, ce qui nous amène à la deuxième solution.

- 2/ En déverrouillant ta feuille avant d’exécuter ta macro, et en la verrouillant après exécution de ta macro!

Thisworkbook.sheets("feuil1").UnProtect "code"

'Ta macro d'insertion de ligne

Thisworkbook.sheets("feuil1").Protect "code"

Au plaisir de te lire,

Yann

Bonjour Yann,

je n'y connais absolument rien en code mais j'ai réussi à installer la macro.

Il faut rentrer les codes dans la macro existante ou autrement ? Je viens de faire des tests mais rien ne fonctionne (on ne peut s'improviser "codeur"). Je te mets la macro utilisée au cas ou ... Merci à toi.

Sub Bouton3_Cliquer()

ActiveCell.EntireRow.Insert

Rows(ActiveCell.Row + 1).Copy Rows(ActiveCell.Row)

On Error Resume Next

Rows(ActiveCell.Row).SpecialCells(xlCellTypeConstants, 1).ClearContents

End Sub

Héhé! Ne t'inquiètes pas, ça viendra avec le temps ça!

Sub Bouton3_Cliquer()

Thisworkbook.ActiveSheet.UnProtect "code"

ActiveCell.EntireRow.Insert
Rows(ActiveCell.Row + 1).Copy Rows(ActiveCell.Row)
On Error Resume Next
Rows(ActiveCell.Row).SpecialCells(xlCellTypeConstants, 1).ClearContents

Thisworkbook.ActiveSheet.Protect "code"

End Sub

Voilà, c'est la solution numéro 2, elle est inclue directement dans ta macro!

Super, merci Beaucoup Yann, ça fait 2 jours que j'essaie par moi-même (j'ai plus beaucoup de cheveux !!!)

Encore merci et bonne journée !!!

Haha!

De rien! Bonne continuation!

N'oublie pas de mettre le sujet en résolu!

Ok c'est fait, et merci encore !!!

Re bonjour,

j'ai trouvé une autre macro qui serait mieux que mon premier essai qui se faisait en deux clics) mais je ne recopie pas la dernière ligne du tableau ?

Je joints le fichier au cas ou ...

Merci encore.

39test2.xlsm (57.05 Ko)

Re-Bonjour,

Je viens d'essayer, et si, tu recopie la totalité de la ligne, validation de donnée inclue!

Quel est le problème?

Re,

en fait je voudrais rajouter une ligne sur le bas du tableau avec recopie des formules et la par contre ça me rajoute des lignes dans les objets des colonnes.

Ahh! C'est que ton tableau est vide! Ta fonction récupéré la dernière ligne remplie! Ici il s'agit de la ligne des titres de colonnes puisque ton tableau est vide!

Tu veux aussi copier le contenu de ta dernière ligne ou ajouter une ligne vierge?

Tu veux ajouter ta ligne en début de tableau ou en fin de tableau?

Teste en remplissant une ligne de ton tableau, ça devrai fonctionner!

Rechercher des sujets similaires à "verrouiller feuille macro"