Conflit avec insertion de ligne + macro

jo1177

XLDnaute Junior
Bonjour le forum !!=)

Voilà, je vous expose mon petit souci :

J'ai une macro qui me permet de copier puis d'insérer la ligne copié à l'endroit séléctionné par la simple pression d'un bouton créé sur la feuille Excel.

Voici la macro que j'utilise :

Code:
Sub Insère()

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

Rows(ActiveCell.Row).Select
With Selection.Interior
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorDark1
.TintAndShade = 0
.PatternTintAndShade = 0
End With

End Sub


Le problème est que je souhaiterai protéger ma feuille, et quand je réalise cette action, alors ma macro devient inactive et Excel VBA m'indique une erreur.

Je souhaitais donc savoir si il y avait un moyen de coutourner ce problème ?
Faut-il rajouter une fonction à ma macro ?

Merci beaucoup pour votre aide =)

A bientôt

jo1177
 

Pierrot93

XLDnaute Barbatruc
Re : Conflit avec insertion de ligne + macro

Bonjour jo,

2 solutions, dans ton code, déprotéger ta feuille avant toute action sur celle-ci puis la re-protéger à la fin, ou bien effectuer une protection par vba à l'ouverture du classeur, en utilisant l'argument "userinterfaceonly", qui permet l'exécution du code sans déprotection, exemple ci-dessous :

Code:
Option Explicit
Private Sub Workbook_Open()
Feuil1.Protect "toto", userinterfaceonly:=True
End Sub

bonne journée
@+
 

jo1177

XLDnaute Junior
Re : Conflit avec insertion de ligne + macro

Bonjour pierrot93, et merci pour votre aide =)

Ce n'est pas moi qui utiliserai la feuille en question, donc j'aime bien l'idée du VBA car tout agit par transparence !

Je ne connaissait pas l'existence de cette fonction, je vais essayer ça tout de suite =)

Une petite question, dois-je ajouter votre exemple à ma macro, où dois-je en créer une nouvelle ?
Je suppose que "toto" dois être remplacé par le nom de ma macro ?

Merci beaucoup =)

jo1177
 

Pierrot93

XLDnaute Barbatruc
Re : Conflit avec insertion de ligne + macro

Re,

non "toto" correspond au mot de passe utilisé pour protéger la feuille. Tu peux copier ce code directement dans le module "thisworkbook" de ton classeur, se déclenchera à l'ouverture de celui-ci. Attention dans ce code j'ai utilisé le "codename" de la feuille et non son nom.

bon après midi
@+
 

Membres actuellement en ligne

Statistiques des forums

Discussions
312 668
Messages
2 090 739
Membres
104 643
dernier inscrit
adriano22