Conflit avec insertion de ligne + macro

  • Initiateur de la discussion Initiateur de la discussion jo1177
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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
@+
 
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
 
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
@+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
9
Affichages
884
L
Réponses
9
Affichages
1 K
M
Réponses
2
Affichages
841
M
F
Réponses
8
Affichages
3 K
F
N
Réponses
2
Affichages
857
Nicolaroute
N
S
Réponses
2
Affichages
1 K
L
Réponses
14
Affichages
2 K
L
A
Réponses
7
Affichages
901
A
Retour