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

Protection auto à la fermeture du fichier

13 réponses
Avatar
YANN24
Bonjour,
je voudrais savoir comment faire pour que mes feuilles 01, 02 et 03 soient
automatiquement protégée par le mot "passe" lorsque je quitte le fichier.

Voici déjà ce que j'ai dans mon workbook:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
ActiveWorkbook.Save
End Sub

Merci d'avance
YANN

10 réponses

1 2
Avatar
Aurélien29
YANN24 a exprimé avec précision :
Bonjour,
je voudrais savoir comment faire pour que mes feuilles 01, 02 et 03 soient
automatiquement protégée par le mot "passe" lorsque je quitte le fichier.

Voici déjà ce que j'ai dans mon workbook:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
ActiveWorkbook.Save
End Sub

Merci d'avance
YANN


Bonjour Yann


Private Sub Workbook_BeforeClose(Cancel As Boolean)
For i = 1 To 3
Sheets(i).Protect Password:="passe"
Next i
ActiveWorkbook.Save

End Sub

--
Aurélien29

Avatar
YANN24
OK, merci , c impecable.

Tchao.
YANN


YANN24 a exprimé avec précision :
Bonjour,
je voudrais savoir comment faire pour que mes feuilles 01, 02 et 03 soient
automatiquement protégée par le mot "passe" lorsque je quitte le fichier.

Voici déjà ce que j'ai dans mon workbook:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
ActiveWorkbook.Save
End Sub

Merci d'avance
YANN


Bonjour Yann


Private Sub Workbook_BeforeClose(Cancel As Boolean)
For i = 1 To 3
Sheets(i).Protect Password:="passe"
Next i
ActiveWorkbook.Save

End Sub

--
Aurélien29





Avatar
denis P
Salut
-si par feuilles 01, 02 et 03 tu entant le numéro d'index de tes feuilles

Private Sub Workbook_BeforeClose(Cancel As Boolean)
For i = 1 To 3
Worksheets(i).Protect Password:="toto", _
DrawingObjects:=True, Contents:=True, Scenarios:=True
Next i
ActiveWorkbook.Save
End Sub

-Si 01, 02 et 03 sont les noms de tes feuilles

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Worksheets("01").Protect Password:="toto", _
DrawingObjects:=True, Contents:=True, Scenarios:=True

Worksheets("02").Protect Password:="toto", _
DrawingObjects:=True, Contents:=True, Scenarios:=True

Worksheets("03").Protect Password:="toto", _
DrawingObjects:=True, Contents:=True, Scenarios:=True

ActiveWorkbook.Save
End Sub

denis p.

"YANN24" a écrit dans le message de
news:
Bonjour,
je voudrais savoir comment faire pour que mes feuilles 01, 02 et 03 soient
automatiquement protégée par le mot "passe" lorsque je quitte le fichier.

Voici déjà ce que j'ai dans mon workbook:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
ActiveWorkbook.Save
End Sub

Merci d'avance
YANN


Avatar
anomymousA
bonjour,

pour compléter, si les feuilles s'appellent vraiment "01", "02" et "03", il
vaut mieux les nommer car elles ne sont peut-etre pas indexées 1, 2 et 3.
.

Dans ce cas,
Private Sub Workbook_BeforeClose(Cancel As Boolean)

For i = 1 To sheets.count

if Sheets(i).name="01" or Sheets(i).name="02" or Sheets(i).name="03"
then sheets(i).Protect Password:="passe"

Next i

ActiveWorkbook.Save
end sub

ou

Private Sub Workbook_BeforeClose(Cancel As Boolean)

tabsheets = Array(Sheets("01"), Sheets("02"), Sheets("03"))
For i = LBound(tabsheets) To UBound(tabsheets)
tabsheets(i).Protect "passe"
Next

ActiveWorkbook.Save
End Sub

A+



YANN24 a exprimé avec précision :
Bonjour,
je voudrais savoir comment faire pour que mes feuilles 01, 02 et 03 soient
automatiquement protégée par le mot "passe" lorsque je quitte le fichier.

Voici déjà ce que j'ai dans mon workbook:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
ActiveWorkbook.Save
End Sub

Merci d'avance
YANN


Bonjour Yann


Private Sub Workbook_BeforeClose(Cancel As Boolean)
For i = 1 To 3
Sheets(i).Protect Password:="passe"
Next i
ActiveWorkbook.Save

End Sub

--
Aurélien29





Avatar
YANN24
Salut

en fait, mes feuilles se nomment 01.05, 02.05, ... jusque 12.05, et au CP 05.
Et donc, je veux un moyen rapide de les verouiller à la fermeture, en les
sélectionnnant sur une ligne.
Si ta la réponse à mon pb, merci d'avance.

YANN


Salut
-si par feuilles 01, 02 et 03 tu entant le numéro d'index de tes feuilles

Private Sub Workbook_BeforeClose(Cancel As Boolean)
For i = 1 To 3
Worksheets(i).Protect Password:="toto", _
DrawingObjects:=True, Contents:=True, Scenarios:=True
Next i
ActiveWorkbook.Save
End Sub

-Si 01, 02 et 03 sont les noms de tes feuilles

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Worksheets("01").Protect Password:="toto", _
DrawingObjects:=True, Contents:=True, Scenarios:=True

Worksheets("02").Protect Password:="toto", _
DrawingObjects:=True, Contents:=True, Scenarios:=True

Worksheets("03").Protect Password:="toto", _
DrawingObjects:=True, Contents:=True, Scenarios:=True

ActiveWorkbook.Save
End Sub

denis p.

"YANN24" a écrit dans le message de
news:
Bonjour,
je voudrais savoir comment faire pour que mes feuilles 01, 02 et 03 soient
automatiquement protégée par le mot "passe" lorsque je quitte le fichier.

Voici déjà ce que j'ai dans mon workbook:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
ActiveWorkbook.Save
End Sub

Merci d'avance
YANN







Avatar
anonymousA
re,

prends connaissance de ma réponse pour te donner une idée d'une
fermeture en ne protegeant que qelques feuilles.
Que veux-tu dire d'ailleurs, par selectionner sur une ligne ?

A+

Salut

en fait, mes feuilles se nomment 01.05, 02.05, ... jusque 12.05, et au CP 05.
Et donc, je veux un moyen rapide de les verouiller à la fermeture, en les
sélectionnnant sur une ligne.
Si ta la réponse à mon pb, merci d'avance.

YANN



Salut
-si par feuilles 01, 02 et 03 tu entant le numéro d'index de tes feuilles

Private Sub Workbook_BeforeClose(Cancel As Boolean)
For i = 1 To 3
Worksheets(i).Protect Password:="toto", _
DrawingObjects:=True, Contents:=True, Scenarios:=True
Next i
ActiveWorkbook.Save
End Sub

-Si 01, 02 et 03 sont les noms de tes feuilles

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Worksheets("01").Protect Password:="toto", _
DrawingObjects:=True, Contents:=True, Scenarios:=True

Worksheets("02").Protect Password:="toto", _
DrawingObjects:=True, Contents:=True, Scenarios:=True

Worksheets("03").Protect Password:="toto", _
DrawingObjects:=True, Contents:=True, Scenarios:=True

ActiveWorkbook.Save
End Sub

denis p.

"YANN24" a écrit dans le message de
news:

Bonjour,
je voudrais savoir comment faire pour que mes feuilles 01, 02 et 03 soient
automatiquement protégée par le mot "passe" lorsque je quitte le fichier.

Voici déjà ce que j'ai dans mon workbook:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
ActiveWorkbook.Save
End Sub

Merci d'avance
YANN









Avatar
YANN24
Salut,
en fait mes feuilles ne suivent pas une suite, donc je crois que
'For i = 1 To sheets.count puisse fonctionner (je ne sais pas?).
Donc, je voudrais 1 ligne de commande VBA pour sélectionner mes 13 feuilles,
genre :
' tabl = Array("01.05", "02.05", "03.05", "04.05", "05.05", "06.05",
"07.05", "08.05", "09.05", "10.05", "11.05", "12.05")
' For I = LBound(tabl) To UBound(tabl)
' With Sheets(tabl(I))
' Unprotect "code"
' Range("F:F,G:G,H:H,J:J,M:M,N:N,O:O").EntireColumn.Hidden = True
' Protect "code"
' End With
' Next

Est ce que ça marcherais?
Merci d'avance.
YANN



re,

prends connaissance de ma réponse pour te donner une idée d'une
fermeture en ne protegeant que qelques feuilles.
Que veux-tu dire d'ailleurs, par selectionner sur une ligne ?

A+

Salut

en fait, mes feuilles se nomment 01.05, 02.05, ... jusque 12.05, et au CP 05.
Et donc, je veux un moyen rapide de les verouiller à la fermeture, en les
sélectionnnant sur une ligne.
Si ta la réponse à mon pb, merci d'avance.

YANN



Salut
-si par feuilles 01, 02 et 03 tu entant le numéro d'index de tes feuilles

Private Sub Workbook_BeforeClose(Cancel As Boolean)
For i = 1 To 3
Worksheets(i).Protect Password:="toto", _
DrawingObjects:=True, Contents:=True, Scenarios:=True
Next i
ActiveWorkbook.Save
End Sub

-Si 01, 02 et 03 sont les noms de tes feuilles

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Worksheets("01").Protect Password:="toto", _
DrawingObjects:=True, Contents:=True, Scenarios:=True

Worksheets("02").Protect Password:="toto", _
DrawingObjects:=True, Contents:=True, Scenarios:=True

Worksheets("03").Protect Password:="toto", _
DrawingObjects:=True, Contents:=True, Scenarios:=True

ActiveWorkbook.Save
End Sub

denis p.

"YANN24" a écrit dans le message de
news:

Bonjour,
je voudrais savoir comment faire pour que mes feuilles 01, 02 et 03 soient
automatiquement protégée par le mot "passe" lorsque je quitte le fichier.

Voici déjà ce que j'ai dans mon workbook:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
ActiveWorkbook.Save
End Sub

Merci d'avance
YANN












Avatar
patrick.lyon
Salut,
en fait mes feuilles ne suivent pas une suite, donc je crois que
'For i = 1 To sheets.count puisse fonctionner (je ne sais pas?).
Donc, je voudrais 1 ligne de commande VBA pour sélectionner mes 13 feuilles,
genre :
' tabl = Array("01.05", "02.05", "03.05", "04.05", "05.05", "06.05",
"07.05", "08.05", "09.05", "10.05", "11.05", "12.05")
bonjour


dim tab1
tab1 = VBA.Array("01.05",".....)
for i = 0 to 12
Sheets (tab1(i)).Select

next i


fonctionne chez moi

' For I = LBound(tabl) To UBound(tabl)
' With Sheets(tabl(I))
' Unprotect "code"
' Range("F:F,G:G,H:H,J:J,M:M,N:N,O:O").EntireColumn.Hidden = True
' Protect "code"
' End With
' Next

Est ce que ça marcherais?
Merci d'avance.
YANN



re,

prends connaissance de ma réponse pour te donner une idée d'une
fermeture en ne protegeant que qelques feuilles.
Que veux-tu dire d'ailleurs, par selectionner sur une ligne ?

A+

Salut

en fait, mes feuilles se nomment 01.05, 02.05, ... jusque 12.05, et au CP 05.
Et donc, je veux un moyen rapide de les verouiller à la fermeture, en les
sélectionnnant sur une ligne.
Si ta la réponse à mon pb, merci d'avance.

YANN



Salut
-si par feuilles 01, 02 et 03 tu entant le numéro d'index de tes feuilles

Private Sub Workbook_BeforeClose(Cancel As Boolean)
For i = 1 To 3
Worksheets(i).Protect Password:="toto", _
DrawingObjects:=True, Contents:=True, Scenarios:=True
Next i
ActiveWorkbook.Save
End Sub

-Si 01, 02 et 03 sont les noms de tes feuilles

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Worksheets("01").Protect Password:="toto", _
DrawingObjects:=True, Contents:=True, Scenarios:=True

Worksheets("02").Protect Password:="toto", _
DrawingObjects:=True, Contents:=True, Scenarios:=True

Worksheets("03").Protect Password:="toto", _
DrawingObjects:=True, Contents:=True, Scenarios:=True

ActiveWorkbook.Save
End Sub

denis p.

"YANN24" a écrit dans le message de
news:

Bonjour,
je voudrais savoir comment faire pour que mes feuilles 01, 02 et 03 soient
automatiquement protégée par le mot "passe" lorsque je quitte le fichier.

Voici déjà ce que j'ai dans mon workbook:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
ActiveWorkbook.Save
End Sub

Merci d'avance
YANN














Avatar
anomymousA
re,

for I=1 to sheets.count veut simplement dire que l'on parcourt l'ensemble de
la collection des feuilles du classeur actif ( que les feuilles soient des
feuilles de calcul ou des feuilles graphiques d'ailleurs).L'indexation dans
la collection sheets est liée à la position des onglets dans le classeur.
Il reste donc lors de ce parcours à déterminer si une feuille doit subir un
traitement particulier auquel cas il faut bien en répérer un caractère
discriminant pour lui faire subir ce traitement.
C'est l'objet de la 1ere méthode que je te proposais

For i = 1 To sheets.count

if Sheets(i).name="01" or Sheets(i).name="02" or Sheets(i).name="03"
then sheets(i).Protect Password:="passe"

Next i

Si par contre , on ne souhaite pas faire un parcours de l'ensemble des
feuilles, ce qu'il faut faire c'est déclarer p.e par avance un tableau
contenant le nom des feuilles pour lesquelles un traitement particulier doit
avoir lieu, et au lieu de parcourir la collection des feuilles , on parcourt
"la collection" des éléments du tableau.
C'est l'objet de la 2eme méthode que je te proposais

Private Sub Workbook_BeforeClose(Cancel As Boolean)

tabsheets = Array(Sheets("01"), Sheets("02"), Sheets("03"))
For i = LBound(tabsheets) To UBound(tabsheets)
tabsheets(i).Protect "passe"
Next

ActiveWorkbook.Save
End Sub

Enfin, dans la procédure que tu me soumets ( qui est d'ailleurs au fond une
version de la 2eme méthode), il faudra que tu écrives

With Sheets(tabl(I))
.activate
.Unprotect "code"
. Range("F:F,G:G,H:H,J:J,M:M,N:N,O:O").EntireColumn.Hidden = True
.Protect "code"
End With

car en effet, il ya nécéssité d'activer la feuille pour cacher des
colonnes.Il me semble d'ailleurs t'avoir déjà répondu dans un fil de fin de
semaine dernière excatement la même chose.

A+


Salut,
en fait mes feuilles ne suivent pas une suite, donc je crois que
'For i = 1 To sheets.count puisse fonctionner (je ne sais pas?).
Donc, je voudrais 1 ligne de commande VBA pour sélectionner mes 13 feuilles,
genre :
' tabl = Array("01.05", "02.05", "03.05", "04.05", "05.05", "06.05",
"07.05", "08.05", "09.05", "10.05", "11.05", "12.05")
' For I = LBound(tabl) To UBound(tabl)
' With Sheets(tabl(I))
' Unprotect "code"
' Range("F:F,G:G,H:H,J:J,M:M,N:N,O:O").EntireColumn.Hidden = True
' Protect "code"
' End With
' Next

Est ce que ça marcherais?
Merci d'avance.
YANN



re,

prends connaissance de ma réponse pour te donner une idée d'une
fermeture en ne protegeant que qelques feuilles.
Que veux-tu dire d'ailleurs, par selectionner sur une ligne ?

A+

Salut

en fait, mes feuilles se nomment 01.05, 02.05, ... jusque 12.05, et au CP 05.
Et donc, je veux un moyen rapide de les verouiller à la fermeture, en les
sélectionnnant sur une ligne.
Si ta la réponse à mon pb, merci d'avance.

YANN



Salut
-si par feuilles 01, 02 et 03 tu entant le numéro d'index de tes feuilles

Private Sub Workbook_BeforeClose(Cancel As Boolean)
For i = 1 To 3
Worksheets(i).Protect Password:="toto", _
DrawingObjects:=True, Contents:=True, Scenarios:=True
Next i
ActiveWorkbook.Save
End Sub

-Si 01, 02 et 03 sont les noms de tes feuilles

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Worksheets("01").Protect Password:="toto", _
DrawingObjects:=True, Contents:=True, Scenarios:=True

Worksheets("02").Protect Password:="toto", _
DrawingObjects:=True, Contents:=True, Scenarios:=True

Worksheets("03").Protect Password:="toto", _
DrawingObjects:=True, Contents:=True, Scenarios:=True

ActiveWorkbook.Save
End Sub

denis p.

"YANN24" a écrit dans le message de
news:

Bonjour,
je voudrais savoir comment faire pour que mes feuilles 01, 02 et 03 soient
automatiquement protégée par le mot "passe" lorsque je quitte le fichier.

Voici déjà ce que j'ai dans mon workbook:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
ActiveWorkbook.Save
End Sub

Merci d'avance
YANN














Avatar
Michel Gaboly
Bonjour,

C'est quoi cette nécessité d'activer la feuille pour masquer des
colonnes ? c'est nouveau, ça vient de sortir ? ;-))

Il est exceptionnel de devoir activer un objet pour modifier une propriété.

Le code ci-dessous fonctionne très bien

Sheets(2).Column("B:F").Hidden = True

même si la feuille correspondant à Sheets(2) n'est pas la feuille active.




Enfin, dans la procédure que tu me soumets ( qui est d'ailleurs au fond une
version de la 2eme méthode), il faudra que tu écrives

With Sheets(tabl(I))
.activate
.Unprotect "code"
. Range("F:F,G:G,H:H,J:J,M:M,N:N,O:O").EntireColumn.Hidden = True
.Protect "code"
End With

car en effet, il ya nécéssité d'activer la feuille pour cacher des
colonnes.Il me semble d'ailleurs t'avoir déjà répondu dans un fil de fin de
semaine dernière excatement la même chose.

A+




--
Cordialement,

Michel Gaboly
www.gaboly.com

1 2