Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Automatiser la suppression de la protection d'une feuille dans un classeur

2 réponses
Avatar
Le-Vif
Bonjour à tous/toutes,

je suis totalement nul en matière de macros, et je dois faire un truc
ultra-répétitif sous excel, où une simple macro devrait "exceller" !
voila : j'ai environ 1200 fichiers excel dans un même répertoire. Ils
portent des noms en incrément, du style : 0001-Dupont.xls, 0002-Martin.xls,
0003-MIchu.xls, etc... tous ces fichiers sont composés d'une unique feuille,
toujours nommée "Feuil1", et qui est protégée par un mot de passe, toujours
le même sur tous les fichiers.

Pb : comment éviter d'ouvrir à la main 1200 fichiers pour retirer la
protection ? Comment peut-on automatiser la chose ?

Merci d'avance pour votre aide éclairée...

Le-Vif.

2 réponses

Avatar
anomymousA
bonjour,

en admettant que ton répertoire s'appelle
D:DONNEESPersonnelInternetNouveau Dossier

Directory = "D:DONNEESPersonnelInternetNouveau Dossier"
On Error Resume Next
With Application.FileSearch
.NewSearch
.LookIn = Directory
.Filename = "*.xls"
.SearchSubFolders = False
.Execute
For I = 1 To .FoundFiles.Count
Workbooks.Open (.FoundFiles(I))
ActiveWorkbook.Sheets("Feuil1").Unprotect "ton mot de passe"
Next
End With


Par ailleurs, si tes fichiers ont des liens avec d'autres fichiers, il te
faudra écrire Application.asktoupdatelinksúlse en entête de ton programme
si tu ne veux pas qu'Excel te pose incessamment la question et remettre cette
instruction à True en fin de programme.

ceci dit, je ne connais pas la taille de tes fichiers mais je suis pas
ceratin du tout que tu puisses les ouvrir tous.

D'ailleurs, après si tu veux les refermer automatiquement sans qu'Excel te
demande de confirmer à chaque fois si tu as fait des modifs dans le fichier,
la procédure suivante le fera correctement à condition qu'ils soient les
seuls ouverts .

Application.displayalertsúlse
for I=workbooks.count to 1 step -1
workbooks(I).sheests("Feuil1").protect "ton mot de passe"
workbooks(I).close
next
Application.displayalerts=true

A+


Bonjour à tous/toutes,

je suis totalement nul en matière de macros, et je dois faire un truc
ultra-répétitif sous excel, où une simple macro devrait "exceller" !
voila : j'ai environ 1200 fichiers excel dans un même répertoire. Ils
portent des noms en incrément, du style : 0001-Dupont.xls, 0002-Martin.xls,
0003-MIchu.xls, etc... tous ces fichiers sont composés d'une unique feuille,
toujours nommée "Feuil1", et qui est protégée par un mot de passe, toujours
le même sur tous les fichiers.

Pb : comment éviter d'ouvrir à la main 1200 fichiers pour retirer la
protection ? Comment peut-on automatiser la chose ?

Merci d'avance pour votre aide éclairée...

Le-Vif.





Avatar
Le-Vif
Merci pour ta réponse, j'essaie et te tiens au courant.

@ +

Le Vif
"anomymousA" a écrit dans le message
de news:
bonjour,

en admettant que ton répertoire s'appelle
D:DONNEESPersonnelInternetNouveau Dossier

Directory = "D:DONNEESPersonnelInternetNouveau Dossier"
On Error Resume Next
With Application.FileSearch
.NewSearch
.LookIn = Directory
.Filename = "*.xls"
.SearchSubFolders = False
.Execute
For I = 1 To .FoundFiles.Count
Workbooks.Open (.FoundFiles(I))
ActiveWorkbook.Sheets("Feuil1").Unprotect "ton mot de passe"
Next
End With


Par ailleurs, si tes fichiers ont des liens avec d'autres fichiers, il te
faudra écrire Application.asktoupdatelinksúlse en entête de ton
programme

si tu ne veux pas qu'Excel te pose incessamment la question et remettre
cette

instruction à True en fin de programme.

ceci dit, je ne connais pas la taille de tes fichiers mais je suis pas
ceratin du tout que tu puisses les ouvrir tous.

D'ailleurs, après si tu veux les refermer automatiquement sans qu'Excel te
demande de confirmer à chaque fois si tu as fait des modifs dans le
fichier,

la procédure suivante le fera correctement à condition qu'ils soient les
seuls ouverts .

Application.displayalertsúlse
for I=workbooks.count to 1 step -1
workbooks(I).sheests("Feuil1").protect "ton mot de passe"
workbooks(I).close
next
Application.displayalerts=true

A+


Bonjour à tous/toutes,

je suis totalement nul en matière de macros, et je dois faire un truc
ultra-répétitif sous excel, où une simple macro devrait "exceller" !
voila : j'ai environ 1200 fichiers excel dans un même répertoire. Ils
portent des noms en incrément, du style : 0001-Dupont.xls,
0002-Martin.xls,


0003-MIchu.xls, etc... tous ces fichiers sont composés d'une unique
feuille,


toujours nommée "Feuil1", et qui est protégée par un mot de passe,
toujours


le même sur tous les fichiers.

Pb : comment éviter d'ouvrir à la main 1200 fichiers pour retirer la
protection ? Comment peut-on automatiser la chose ?

Merci d'avance pour votre aide éclairée...

Le-Vif.