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
OK, je te remercie, et pour ta réponse sur l'autre sujet aussi. Je vais essayer ça, mais pas avant Samedi, car mon boulot m'attend. Je reviens Samedi aprèm normalement. BYE.
Yann
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
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
OK, je te remercie, et pour ta réponse sur l'autre sujet aussi.
Je vais essayer ça, mais pas avant Samedi, car mon boulot m'attend.
Je reviens Samedi aprèm normalement.
BYE.
Yann
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
"YANN24" <YANN24@discussions.microsoft.com> a écrit dans le message de
news:B05ADCD3-45D9-4D8E-A9CB-7D41065C7871@microsoft.com...
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
OK, je te remercie, et pour ta réponse sur l'autre sujet aussi. Je vais essayer ça, mais pas avant Samedi, car mon boulot m'attend. Je reviens Samedi aprèm normalement. BYE.
Yann
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
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
anomymousA
Effectivement, erreur de la banque en votre faveur. J'ai répondu trop vite sans vérifier.
A+
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
Effectivement, erreur de la banque en votre faveur. J'ai répondu trop vite
sans vérifier.
A+
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.
Effectivement, erreur de la banque en votre faveur. J'ai répondu trop vite sans vérifier.
A+
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
Michel Gaboly
;-))
Effectivement, erreur de la banque en votre faveur. J'ai répondu trop vite sans vérifier.
A+
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
-- Cordialement,
Michel Gaboly www.gaboly.com
;-))
Effectivement, erreur de la banque en votre faveur. J'ai répondu trop vite
sans vérifier.
A+
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.
Effectivement, erreur de la banque en votre faveur. J'ai répondu trop vite sans vérifier.
A+
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.