Bouton VBA qui contourne la protection de la feuille

Bonjour,

j'ai actuellement un bouton sur la feuille "Recherche" associée à un code qui me déplace des colonnes spécifiques de ma feuille "Outillage" de chaque ligne qui possèdent "Lancer étalonnage" dans la colonne L.

Mais comme je veux pour mettre en place mon Excel protégée ma feuille "Outillage", le bouton ne marche plus erreur de déblogage 1004 au niveau de la ligne ".Range("Z1").Value = .Range("L1").Value 'mise en place du titre pour le filtre élaboré"

Voici le code en entier :

[code][/Sub Lancerétalonnage()

Dim ShOutil As Worksheet, ShExtract As Worksheet 'déclaration des variables

Dim Plg As Range

Dim DerLig As Long

Set ShOutil = Sheets("Outillage"): Set ShExtract = Sheets("Feuille3") 'définition des onglets

With ShOutil 'avec l'onglet "Outillage"

DerLig = .Cells(Rows.Count, 1).End(xlUp).Row 'calcul de la dernière ligne

Set Plg = .Range("A1:AA" & DerLig) 'définition de la plage utile

ShExtract.Range("A1").Value = .Range("A1").Value 'copie des titres dans l'onglet "Feuille3"

ShExtract.Range("B1").Value = .Range("B1").Value

ShExtract.Range("C1").Value = .Range("D1").Value

ShExtract.Range("D1").Value = .Range("I1").Value

ShExtract.Range("E1").Value = .Range("T1").Value

ShExtract.Range("F1").Value = .Range("U1").Value

ShExtract.Range("G1").Value = .Range("V1").Value

ShExtract.Range("H1").Value = .Range("W1").Value

.Range("Z1").Value = .Range("L1").Value 'mise en place du titre pour le filtre élaboré

.Range("Z2").Value = "Lancer l'étalonnage" 'mise en place du critère

Plg.AdvancedFilter action:=xlFilterCopy, CriteriaRange:=.Range("Z1:Z2"), _

CopyToRange:=ShExtract.Range("A1:H1") 'extraction via un filtre élaboré vers la Feuille3

.Range("Z1:Z2").Clear 'nettoyage des critères

End With

End Subcode]

Je ne préfère pas associé le fichier excel car il appartient à l'entreprise dans lequel je suis en stage.

Merci d'avance !

Bonjour Snakiss,

En début de code, exécuter une macro Déprotéger, et à la fin, une macro Protéger.

Ces deux macros peuvent être réalisées avec l'enregistreur en quelques secondes, et resservir autant de fois que nécessaire...

A+ Daniel

Bonjour Dan,

Merci de votre réponse rapide.

J'ai enregistré la macro comme vous m'avez indiqué et j'ai donc modifier le code précédent mais la même erreur persiste.

Je penses pourtant que l'emplacement des nouvelles lignes sont correct, et je sélectionne bien la feuille avec la protection à chaque fois.

Sub Lancerétalonnage()

Dim ShOutil As Worksheet, ShExtract As Worksheet 'déclaration des variables

Dim Plg As Range

Dim DerLig As Long

Set ShOutil = Sheets("Outillage"): Set ShExtract = Sheets("Feuille3") 'définition des onglets

Sheets("Outillage").Select

ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _

, AllowFiltering:=True

With ShOutil 'avec l'onglet "Outillage"

DerLig = .Cells(Rows.Count, 1).End(xlUp).Row 'calcul de la dernière ligne

Set Plg = .Range("A1:AA" & DerLig) 'définition de la plage utile

ShExtract.Range("A1").Value = .Range("A1").Value 'copie des titres dans l'onglet "Feuille3"

ShExtract.Range("B1").Value = .Range("B1").Value

ShExtract.Range("C1").Value = .Range("D1").Value

ShExtract.Range("D1").Value = .Range("I1").Value

ShExtract.Range("E1").Value = .Range("T1").Value

ShExtract.Range("F1").Value = .Range("U1").Value

ShExtract.Range("G1").Value = .Range("V1").Value

ShExtract.Range("H1").Value = .Range("W1").Value

.Range("Z1").Value = .Range("L1").Value 'mise en place du titre pour le filtre élaboré

.Range("Z2").Value = "Lancer l'étalonnage" 'mise en place du critère

Plg.AdvancedFilter action:=xlFilterCopy, CriteriaRange:=.Range("Z1:Z2"), _

CopyToRange:=ShExtract.Range("A1:H1") 'extraction via un filtre élaboré vers la Feuille3

.Range("Z1:Z2").Clear 'nettoyage des critères

End With

Sheets("Outillage").Select

ActiveSheet.Unprotect

End Sub

Ne faudrait-il pas faire l'inverse, déprotéger le temps que la macro s'exécute, et re-protéger une fois que la macro s'est exécutée ?

Ah oui je suis *** , merci beaucoup sa marche niquel !

Rechercher des sujets similaires à "bouton vba qui contourne protection feuille"