Enlever et remettre protection via macro

CBDORVAL

XLDnaute Junior
Bonjour à tous et évidement à toutes

J’ai fait un fichier assez complexe (du moins pour moi…) qui contient plein de données, de tableaux, de macros de formules etc. Tout cela se trouve logé dans la même feuille intitulée « ACCEUIL », dans un fichier appelé « SV518A » Ce fichier nous permet de trouver parmi 2850 lignes laquelle correspond aux critères choisis soit la ville, la rue et le no civique. On obtient la section de vote correspondante à cette tranche d’adresse
Tout fonctionne très bien, sauf que je voudrai ajouter un autre élément afin de protéger mon fichier contre toutes modifications. J’aimerai donc pouvoir installer une protection sur cette feuille, mais pour que les macros fonctionnent, soit celle ChercheSV et Nouvelle_recherche, il faut qu’au début de ces macros on puisse enlever la protection en utilisant le mot de passe « mdp518 », exécuter les diverses étapes de cette macro et à la fin remettre la protection avec le même mot de passe.
J’ai bien vu dans les archives une question semblable, mais je n’arrive pas à adapter le tout dans ma macro.
https://www.excel-downloads.com/threads/vba-macros-et-protection-de-la-feuille.175219/
Mon fichier est trop volumineux pour le transmettre via le forum, donc voici la macro ChercheSV.



Sub ChercheSV()
'
' ChercheSV Macro
'

'
Application.ScreenUpdating = False
Range("AM101").Select
Selection.Copy
ActiveSheet.Paste
ActiveSheet.Range("$AA$100:$AM$2950").AutoFilter Field:=13, Criteria1:="1"
Range("AF100").Select
Selection.End(xlDown).Select
Selection.Copy
Range("AF2953").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveSheet.Paste
Application.Goto Reference:="Debut"
Range("D5").Select
Application.ScreenUpdating = True
End Sub


===============

Un peu d’aide SVP et merci
 

Pierrot93

XLDnaute Barbatruc
Re : Enlever et remettre protection via macro

Bonsoir,

pour permettre l'exécution du code sans protéger / déprotéger une feuille, il faut que la protection soit effectuée par le code en utilisant l'argument "userinterfaceonly", code ci-dessous à placer dans le module "thisworkbook", se déclenche à l'ouverture du classeur :
Code:
Option Explicit
Private Sub Workbook_Open()
Feuil1.Protect "toto", userinterfaceonly:=True
End Sub

bonne soirée
@+
 

flyonets44

XLDnaute Occasionnel
Re : Enlever et remettre protection via macro

Bonsoir
tu pourrais essayer ceci

Private Sub deprotegefeuille()
Application.ScreenUpdating = False
activesheet.Unprotect Password::="mdp518"
call mamacro
End Sub

Private Sub protegefeuille()
Application.ScreenUpdating = False
ActiveSheet.Protect Password:="mdp518"
End Sub

Cordialement
 

CBDORVAL

XLDnaute Junior
Re : Enlever et remettre protection via macro

Voici ce que j'ai mios dans ma macro CHERECHESV et cela ne fonctionne pas.

Sub ChercheSV()
'
' ChercheSV Macro
Private Sub deprotegefeuille(ACCEUIL)
Application.ScreenUpdating = False
ActiveSheet.Unprotect Password:="mdp518"
Application.ScreenUpdating = False
Range("AM101").Select
Selection.Copy
ActiveSheet.Paste
ActiveSheet.Range("$AA$100:$AM$2950").AutoFilter Field:=13, Criteria1:="1"
Range("AF100").Select
Selection.End(xlDown).Select
Selection.Copy
Range("AF2953").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveSheet.Paste
Application.Goto Reference:="Debut"
Range("D5").Select
Private Sub protegefeuille(ACCEUIL)
Application.ScreenUpdating = False
ActiveSheet.Protect Password:="mdp518"
Application.ScreenUpdating = True
End Sub
 

CBDORVAL

XLDnaute Junior
Re : Enlever et remettre protection via macro

Je pense avoir trouver comment écrire correctement la macro car cela semble marcher. Je dois faire de même pour toutes les mnacxro du fichiers.
Sub ChercheSV()
'
' ChercheSV Macro
Application.ScreenUpdating = False
ActiveSheet.Unprotect Password:="mdp518
Application.ScreenUpdating = False
Range("AM101").Select
Selection.Copy
ActiveSheet.Paste
ActiveSheet.Range("$AA$100:$AM$2950").AutoFilter Field:=13, Criteria1:="1"
Range("AF100").Select
Selection.End(xlDown).Select
Selection.Copy
Range("AF2953").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveSheet.Paste
Application.Goto Reference:="Debut"
Range("D5").Select
ActiveSheet.Protect Password:="mdp518"
Application.ScreenUpdating = True
End Sub
 

CBernardT

XLDnaute Barbatruc
Re : Enlever et remettre protection via macro

Bonsoir à tous,

Essaye cette syntaxe de la macro et lis les commentaires intégrés.

Sub ChercheSV()
' Désactivation de l'affichage
Application.ScreenUpdating = False
With ActiveSheet ' Objet de la série d'instruction qui suivent
' Déprotection de la feuille
.Unprotect Password:="mdp518"
' copie de la cellule
.Range("AM101").Copy
' Collé de cellule sans cellule précisée donc sur la même ???
.Paste
Application.CutCopyMode = False ' Annule le mode Couper ou Copier et supprime la marque de sélection
' Filtrage de la plage
.Range("$AA$100:$AM$2950").AutoFilter Field:=13, Criteria1:="1"
' Copier la plage définie
.Range("AF100").End(xlDown).Copy
.Range("AF2953").PasteSpecial Paste:=xlPasteValues
' Propriété ou méthode non connue
.Goto Reference:="Debut"
' Reprotection de la feuille
.Protect Password:="mdp518"
End With
End Sub
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 361
Messages
2 087 629
Membres
103 613
dernier inscrit
luluinmauritius