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

Protection entête et pied de page

8 réponses
Avatar
Tee
Bonjour à tous

J'aimerai savoir s'il est possible d'empecher les modifications dans
l'entête ou les pieds da page pour excel.


Merci

8 réponses

Avatar
Quetzalcoatl
Bonsoir,

Peut-être une idée à creuser, selon ton besoin :
redéfinir par VBA l'en-tête et le pied de page avant chaque impression, ou
avant l'enregistrement du classeur, ou à l'ouverture du classeur.

Pour cela, utiliser respectivement les procédures suivantes, à insérer dans
ThisWorkbook :
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Private Sub Workbook_BeforeSave(ByVal SaveAsUi As Boolean, Cancel As
Boolean)
Private Sub Workbook_Open()

Pour le code, à placer dans l'une de ces procédures, lancer l'enregistreur
de macros, redéfinir "à la main" l'en-tête et le pied de page et regarder le
code généré.


"Tee" a écrit dans le message de news:
eUK$
Bonjour à tous

J'aimerai savoir s'il est possible d'empecher les modifications dans
l'entête ou les pieds da page pour excel.


Merci




Avatar
Tee
Salut Quetzalcoatl

L'idée etait bonne, jai pris la procédure Private Sub
Workbook_BeforePrint(Cancel As Boolean)

Mais le problème c'est qu'à l'ouverture, la sécurité demande pour la macro
et si on répond désactivé, il est possible d'imprimer sans que le pied de
page soit rempli et peut donc être modifié.
Donc macro désactivé l'entete et le pied de page sont modifiable et pourront
être imprimé dans que mes pieds de page apparraisent.

une autre idée ? ou une idée pour empécher la désactivation des macros ?

Merci


"Quetzalcoatl" a écrit dans le message
de news:448ca333$0$1020$
Bonsoir,

Peut-être une idée à creuser, selon ton besoin :
redéfinir par VBA l'en-tête et le pied de page avant chaque impression, ou
avant l'enregistrement du classeur, ou à l'ouverture du classeur.

Pour cela, utiliser respectivement les procédures suivantes, à insérer
dans

ThisWorkbook :
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Private Sub Workbook_BeforeSave(ByVal SaveAsUi As Boolean, Cancel As
Boolean)
Private Sub Workbook_Open()

Pour le code, à placer dans l'une de ces procédures, lancer l'enregistreur
de macros, redéfinir "à la main" l'en-tête et le pied de page et regarder
le

code généré.


"Tee" a écrit dans le message de news:
eUK$
Bonjour à tous

J'aimerai savoir s'il est possible d'empecher les modifications dans
l'entête ou les pieds da page pour excel.


Merci








Avatar
Tee
Je rectifie, j'ai utilisé les 3 procèdures respectivement comme tu me l'as
indiqué, ça marche parfaitement sauf si je désactive les macros à
l'ouverture.

Merci
"Tee" a écrit dans le message de
news:
Salut Quetzalcoatl

L'idée etait bonne, jai pris la procédure Private Sub
Workbook_BeforePrint(Cancel As Boolean)

Mais le problème c'est qu'à l'ouverture, la sécurité demande pour la macro
et si on répond désactivé, il est possible d'imprimer sans que le pied de
page soit rempli et peut donc être modifié.
Donc macro désactivé l'entete et le pied de page sont modifiable et
pourront

être imprimé dans que mes pieds de page apparraisent.

une autre idée ? ou une idée pour empécher la désactivation des macros ?

Merci


"Quetzalcoatl" a écrit dans le
message

de news:448ca333$0$1020$
Bonsoir,

Peut-être une idée à creuser, selon ton besoin :
redéfinir par VBA l'en-tête et le pied de page avant chaque impression,
ou


avant l'enregistrement du classeur, ou à l'ouverture du classeur.

Pour cela, utiliser respectivement les procédures suivantes, à insérer
dans

ThisWorkbook :
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Private Sub Workbook_BeforeSave(ByVal SaveAsUi As Boolean, Cancel As
Boolean)
Private Sub Workbook_Open()

Pour le code, à placer dans l'une de ces procédures, lancer
l'enregistreur


de macros, redéfinir "à la main" l'en-tête et le pied de page et
regarder


le
code généré.


"Tee" a écrit dans le message de news:
eUK$
Bonjour à tous

J'aimerai savoir s'il est possible d'empecher les modifications dans
l'entête ou les pieds da page pour excel.


Merci












Avatar
Quetzalcoatl
Bonsoir,

Il y a une solution. C'est un peu alambiqué, mais ça fonctionne.

1/ Tu crées une feuille (appelons là Message) dans laquelle tu insères un
message du type "Veuillez activer les macros".
2/ A l'ouverture du classeur, tu affiches toutes les feuilles sauf Message,
que tu masques.
3/ Avant toute sauvegarde du classeur :
- tu masques (sévèrement) toutes les feuilles, sauf Message,
- tu sauvegardes le classeur (avec le même nom si l'opérateur a demandé
"Enregistrer", ou en demandant le nom à l'opérateur s'il a demandé
"Enregistrer sous"),
- tu affiches à nouveau toutes les feuilles sauf Message, que tu masques.
Nota 1 : Il faut veiller à désactiver les évènements, sans quoi, lorsque tu
enregistres, tu ré-entres la procédure.
Nota 2 : On peut aussi désactiver le rafraîchissement de l'affichage, pour
éviter que ça clignote trop.
Nota 3 : Il faut gérer la feuille que l'on souhaite afficher.
Nota 4 : Cancel = True permet que le classeur ne soit pas enregistré (à
nouveau) à la fin de la procédure.
4/ Tu protèges tes macros par un mot de passe.
5/ Tu enregistres tout ça.

Ainsi, si l'opérateur n'active pas les macros, il ne verra que la feuille
Message.
S'il active les macros, toutes les pages seront affichées (sauf Message).

Nous dire.
A+

*Cela donne, dans ThisWorkbook*

Private Sub Workbook_Open()
Dim i as Integer
With ThisWorkbook
For i = Sheets.Count To 1 Step -1
If Sheets(i).Name = "Message" _
Then Sheets(i).Visible = xlSheetVeryHidden _
Else Sheets(i).Visible = True
Next
End With
End Sub

*et*

Private Sub Workbook_BeforeSave(ByVal SaveAsUi As Boolean, Cancel As
Boolean)
Dim sht_displayed As Worksheet
Dim i As Integer
Dim File As String
Application.ScreenUpdating = False
Application.EnableEvents = False
Set sht_displayed = ActiveSheet
With ThisWorkbook
For i = 1 To Sheets.Count Step 1
If Sheets(i).Name = "Message" _
Then Sheets(i).Visible = True _
Else Sheets(i).Visible = xlSheetVeryHidden
Next
Sheets("Message").Select
End With
If SaveAsUi Then
File = Application.GetSaveAsFilename
If File <> False Then ActiveWorkbook.SaveAs Filename:=File
Else: ActiveWorkbook.Save
End If
With ThisWorkbook
For i = Sheets.Count To 1 Step -1
If Sheets(i).Name = "Message" _
Then Sheets(i).Visible = xlSheetVeryHidden _
Else Sheets(i).Visible = True
Next
End With
sht_displayed.Select
Application.EnableEvents = True
Application.ScreenUpdating = True
Cancel = True
End Sub


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

Je rectifie, j'ai utilisé les 3 procèdures respectivement comme tu me l'as
indiqué, ça marche parfaitement sauf si je désactive les macros à
l'ouverture.

Merci
"Tee" a écrit dans le message de
news:
Salut Quetzalcoatl

L'idée etait bonne, jai pris la procédure Private Sub
Workbook_BeforePrint(Cancel As Boolean)

Mais le problème c'est qu'à l'ouverture, la sécurité demande pour la
macro
et si on répond désactivé, il est possible d'imprimer sans que le pied de
page soit rempli et peut donc être modifié.
Donc macro désactivé l'entete et le pied de page sont modifiable et
pourront

être imprimé dans que mes pieds de page apparraisent.

une autre idée ? ou une idée pour empécher la désactivation des macros ?

Merci


"Quetzalcoatl" a écrit dans le
message

de news:448ca333$0$1020$
Bonsoir,

Peut-être une idée à creuser, selon ton besoin :
redéfinir par VBA l'en-tête et le pied de page avant chaque impression,
ou


avant l'enregistrement du classeur, ou à l'ouverture du classeur.

Pour cela, utiliser respectivement les procédures suivantes, à insérer
dans

ThisWorkbook :
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Private Sub Workbook_BeforeSave(ByVal SaveAsUi As Boolean, Cancel As
Boolean)
Private Sub Workbook_Open()

Pour le code, à placer dans l'une de ces procédures, lancer
l'enregistreur


de macros, redéfinir "à la main" l'en-tête et le pied de page et
regarder


le
code généré.


"Tee" a écrit dans le message de news:
eUK$
Bonjour à tous

J'aimerai savoir s'il est possible d'empecher les modifications dans
l'entête ou les pieds da page pour excel.


Merci
















Avatar
Tee
Bonjour Quetzalcoalt

j'ai trouvé une solution a peu près identique.

J'ai gardé les 3 procèdures et j'ai masqué les lignes. Elles ne sont
visibles que si les macros sont activées. et elles se remasquent quand on
sauvegarde.

je vais essayer ta soluce pour voir ce qui est le mieux, par contre comment
désactiver le raffraichissement (effectivement ça clignote pas mal) et
qu'appelle tu masquer séverement ? je ne sais que masquer.

Merci


"Quetzalcoatl" a écrit dans le message
de news:448dbd00$0$877$
Bonsoir,

Il y a une solution. C'est un peu alambiqué, mais ça fonctionne.

1/ Tu crées une feuille (appelons là Message) dans laquelle tu insères un
message du type "Veuillez activer les macros".
2/ A l'ouverture du classeur, tu affiches toutes les feuilles sauf
Message,

que tu masques.
3/ Avant toute sauvegarde du classeur :
- tu masques (sévèrement) toutes les feuilles, sauf Message,
- tu sauvegardes le classeur (avec le même nom si l'opérateur a demandé
"Enregistrer", ou en demandant le nom à l'opérateur s'il a demandé
"Enregistrer sous"),
- tu affiches à nouveau toutes les feuilles sauf Message, que tu
masques.

Nota 1 : Il faut veiller à désactiver les évènements, sans quoi, lorsque
tu

enregistres, tu ré-entres la procédure.
Nota 2 : On peut aussi désactiver le rafraîchissement de l'affichage, pour
éviter que ça clignote trop.
Nota 3 : Il faut gérer la feuille que l'on souhaite afficher.
Nota 4 : Cancel = True permet que le classeur ne soit pas enregistré (à
nouveau) à la fin de la procédure.
4/ Tu protèges tes macros par un mot de passe.
5/ Tu enregistres tout ça.

Ainsi, si l'opérateur n'active pas les macros, il ne verra que la feuille
Message.
S'il active les macros, toutes les pages seront affichées (sauf Message).

Nous dire.
A+

*Cela donne, dans ThisWorkbook*

Private Sub Workbook_Open()
Dim i as Integer
With ThisWorkbook
For i = Sheets.Count To 1 Step -1
If Sheets(i).Name = "Message" _
Then Sheets(i).Visible = xlSheetVeryHidden _
Else Sheets(i).Visible = True
Next
End With
End Sub

*et*

Private Sub Workbook_BeforeSave(ByVal SaveAsUi As Boolean, Cancel As
Boolean)
Dim sht_displayed As Worksheet
Dim i As Integer
Dim File As String
Application.ScreenUpdating = False
Application.EnableEvents = False
Set sht_displayed = ActiveSheet
With ThisWorkbook
For i = 1 To Sheets.Count Step 1
If Sheets(i).Name = "Message" _
Then Sheets(i).Visible = True _
Else Sheets(i).Visible = xlSheetVeryHidden
Next
Sheets("Message").Select
End With
If SaveAsUi Then
File = Application.GetSaveAsFilename
If File <> False Then ActiveWorkbook.SaveAs Filename:=File
Else: ActiveWorkbook.Save
End If
With ThisWorkbook
For i = Sheets.Count To 1 Step -1
If Sheets(i).Name = "Message" _
Then Sheets(i).Visible = xlSheetVeryHidden _
Else Sheets(i).Visible = True
Next
End With
sht_displayed.Select
Application.EnableEvents = True
Application.ScreenUpdating = True
Cancel = True
End Sub


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

Je rectifie, j'ai utilisé les 3 procèdures respectivement comme tu me
l'as


indiqué, ça marche parfaitement sauf si je désactive les macros à
l'ouverture.

Merci
"Tee" a écrit dans le message de
news:
Salut Quetzalcoatl

L'idée etait bonne, jai pris la procédure Private Sub
Workbook_BeforePrint(Cancel As Boolean)

Mais le problème c'est qu'à l'ouverture, la sécurité demande pour la
macro
et si on répond désactivé, il est possible d'imprimer sans que le pied
de



page soit rempli et peut donc être modifié.
Donc macro désactivé l'entete et le pied de page sont modifiable et
pourront

être imprimé dans que mes pieds de page apparraisent.

une autre idée ? ou une idée pour empécher la désactivation des macros
?




Merci


"Quetzalcoatl" a écrit dans le
message

de news:448ca333$0$1020$
Bonsoir,

Peut-être une idée à creuser, selon ton besoin :
redéfinir par VBA l'en-tête et le pied de page avant chaque
impression,




ou
avant l'enregistrement du classeur, ou à l'ouverture du classeur.

Pour cela, utiliser respectivement les procédures suivantes, à
insérer




dans
ThisWorkbook :
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Private Sub Workbook_BeforeSave(ByVal SaveAsUi As Boolean, Cancel As
Boolean)
Private Sub Workbook_Open()

Pour le code, à placer dans l'une de ces procédures, lancer
l'enregistreur


de macros, redéfinir "à la main" l'en-tête et le pied de page et
regarder


le
code généré.


"Tee" a écrit dans le message de news:
eUK$
Bonjour à tous

J'aimerai savoir s'il est possible d'empecher les modifications
dans





l'entête ou les pieds da page pour excel.


Merci




















Avatar
Tee
Je voulais préciser que masquer les lignes et les démasquer genere un
problème de mise en page dans l'impression, j'ai donc du définir les zones
d'impressions.Problème qu'il ne doit pas y avoir dans ton système.


Tcho
"Tee" a écrit dans le message de
news:%
Bonjour Quetzalcoalt

j'ai trouvé une solution a peu près identique.

J'ai gardé les 3 procèdures et j'ai masqué les lignes. Elles ne sont
visibles que si les macros sont activées. et elles se remasquent quand on
sauvegarde.

je vais essayer ta soluce pour voir ce qui est le mieux, par contre
comment

désactiver le raffraichissement (effectivement ça clignote pas mal) et
qu'appelle tu masquer séverement ? je ne sais que masquer.

Merci


"Quetzalcoatl" a écrit dans le
message

de news:448dbd00$0$877$
Bonsoir,

Il y a une solution. C'est un peu alambiqué, mais ça fonctionne.

1/ Tu crées une feuille (appelons là Message) dans laquelle tu insères
un


message du type "Veuillez activer les macros".
2/ A l'ouverture du classeur, tu affiches toutes les feuilles sauf
Message,

que tu masques.
3/ Avant toute sauvegarde du classeur :
- tu masques (sévèrement) toutes les feuilles, sauf Message,
- tu sauvegardes le classeur (avec le même nom si l'opérateur a
demandé


"Enregistrer", ou en demandant le nom à l'opérateur s'il a demandé
"Enregistrer sous"),
- tu affiches à nouveau toutes les feuilles sauf Message, que tu
masques.

Nota 1 : Il faut veiller à désactiver les évènements, sans quoi, lorsque
tu

enregistres, tu ré-entres la procédure.
Nota 2 : On peut aussi désactiver le rafraîchissement de l'affichage,
pour


éviter que ça clignote trop.
Nota 3 : Il faut gérer la feuille que l'on souhaite afficher.
Nota 4 : Cancel = True permet que le classeur ne soit pas enregistré (à
nouveau) à la fin de la procédure.
4/ Tu protèges tes macros par un mot de passe.
5/ Tu enregistres tout ça.

Ainsi, si l'opérateur n'active pas les macros, il ne verra que la
feuille


Message.
S'il active les macros, toutes les pages seront affichées (sauf
Message).



Nous dire.
A+

*Cela donne, dans ThisWorkbook*

Private Sub Workbook_Open()
Dim i as Integer
With ThisWorkbook
For i = Sheets.Count To 1 Step -1
If Sheets(i).Name = "Message" _
Then Sheets(i).Visible = xlSheetVeryHidden _
Else Sheets(i).Visible = True
Next
End With
End Sub

*et*

Private Sub Workbook_BeforeSave(ByVal SaveAsUi As Boolean, Cancel As
Boolean)
Dim sht_displayed As Worksheet
Dim i As Integer
Dim File As String
Application.ScreenUpdating = False
Application.EnableEvents = False
Set sht_displayed = ActiveSheet
With ThisWorkbook
For i = 1 To Sheets.Count Step 1
If Sheets(i).Name = "Message" _
Then Sheets(i).Visible = True _
Else Sheets(i).Visible = xlSheetVeryHidden
Next
Sheets("Message").Select
End With
If SaveAsUi Then
File = Application.GetSaveAsFilename
If File <> False Then ActiveWorkbook.SaveAs Filename:=File
Else: ActiveWorkbook.Save
End If
With ThisWorkbook
For i = Sheets.Count To 1 Step -1
If Sheets(i).Name = "Message" _
Then Sheets(i).Visible = xlSheetVeryHidden _
Else Sheets(i).Visible = True
Next
End With
sht_displayed.Select
Application.EnableEvents = True
Application.ScreenUpdating = True
Cancel = True
End Sub


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

Je rectifie, j'ai utilisé les 3 procèdures respectivement comme tu me
l'as


indiqué, ça marche parfaitement sauf si je désactive les macros à
l'ouverture.

Merci
"Tee" a écrit dans le message de
news:
Salut Quetzalcoatl

L'idée etait bonne, jai pris la procédure Private Sub
Workbook_BeforePrint(Cancel As Boolean)

Mais le problème c'est qu'à l'ouverture, la sécurité demande pour la
macro
et si on répond désactivé, il est possible d'imprimer sans que le
pied




de
page soit rempli et peut donc être modifié.
Donc macro désactivé l'entete et le pied de page sont modifiable et
pourront

être imprimé dans que mes pieds de page apparraisent.

une autre idée ? ou une idée pour empécher la désactivation des
macros




?

Merci


"Quetzalcoatl" a écrit dans le
message

de news:448ca333$0$1020$
Bonsoir,

Peut-être une idée à creuser, selon ton besoin :
redéfinir par VBA l'en-tête et le pied de page avant chaque
impression,




ou
avant l'enregistrement du classeur, ou à l'ouverture du classeur.

Pour cela, utiliser respectivement les procédures suivantes, à
insérer




dans
ThisWorkbook :
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Private Sub Workbook_BeforeSave(ByVal SaveAsUi As Boolean, Cancel
As





Boolean)
Private Sub Workbook_Open()

Pour le code, à placer dans l'une de ces procédures, lancer
l'enregistreur


de macros, redéfinir "à la main" l'en-tête et le pied de page et
regarder


le
code généré.


"Tee" a écrit dans le message de news:
eUK$
Bonjour à tous

J'aimerai savoir s'il est possible d'empecher les modifications
dans





l'entête ou les pieds da page pour excel.


Merci
























Avatar
Quetzalcoatl
Bonsoir,

Désactiver le rafraîchissement de l'affichage :
Application.ScreenUpdating = False
Masquer "sévèrement" (c'est-à-dire que la feuille masquée n'apparaît pas
dans le menu Format > Feuille) :
Sheets(i).Visible = xlSheetVeryHidden


"Tee" a écrit dans le message de
comment désactiver le raffraichissement (effectivement ça clignote pas
mal) et qu'appelle tu masquer séverement ? je ne sais que masquer.


Avatar
Tee
Bonjour

j'essaie tout ça.

Merci pour tout


"Quetzalcoatl" a écrit dans le message
de news:448f1f5c$0$873$
Bonsoir,

Désactiver le rafraîchissement de l'affichage :
Application.ScreenUpdating = False
Masquer "sévèrement" (c'est-à-dire que la feuille masquée n'apparaît pas
dans le menu Format > Feuille) :
Sheets(i).Visible = xlSheetVeryHidden


"Tee" a écrit dans le message de
comment désactiver le raffraichissement (effectivement ça clignote pas
mal) et qu'appelle tu masquer séverement ? je ne sais que masquer.