Je me présente, Emilien, nouvel utilisateur d'Excel avec macro.
Je cherche un code que j'intégrerai à mes macro, qui me permette de supprimer l'ensemble des en-têtes et pieds de pages. Que ce soit pour la première page et les suivantes.
J'ai cherché sur les forums mais je n'ai pas trouvé de code supprimant tout.
Emilien07 (Bienvenue sur le forum)
A tester, en lançant la macro nommée test
VB:
Sub Supprimer(ws As Worksheet)
With ws.PageSetup
.LeftHeader = ""
.CenterHeader = ""
.RightHeader = ""
.LeftFooter = ""
.CenterFooter = ""
.RightFooter = ""
End With
End Sub
Sub test()
Dim f As Worksheet
For Each f In Worksheets
Supprimer f
Next
End Sub
Emilien07 (Bienvenue sur le forum)
A tester, en lançant la macro nommée test
VB:
Sub Supprimer(ws As Worksheet)
With ws.PageSetup
.LeftHeader = ""
.CenterHeader = ""
.RightHeader = ""
.LeftFooter = ""
.CenterFooter = ""
.RightFooter = ""
End With
End Sub
Sub test()
Dim f As Worksheet
For Each f In Worksheets
Supprimer f
Next
End Sub
J'ai testé au boulot (Excel 2010)
Ça fonctionne
Je viens de tester chez moi (Excel 2013)
Cela fonctionne aussi.
Pour t'en convaincre, fais le test suivant
Dans un classeur vierge ne contenant qu'une feuille, lance la macro PrepareTEST
VB:
Sub PrepareTEST()
Dim ws As Worksheet
Sheets(1).Cells(1).Resize(10, 7) = Date
Sheets.Add.Cells(1).Resize(20, 7) = Time
Sheets.Add.Cells(1).Resize(30, 7) = Application.UserName
For Each ws In Worksheets
InsererEetPP ws
Next
End Sub
Sub InsererEetPP(ws As Worksheet)
Application.PrintCommunication = False
For Each ws In Worksheets
With ws.PageSetup
.LeftHeader = "&D"
.CenterHeader = "&P"
.RightHeader = "&T"
.LeftFooter = "&A"
.CenterFooter = ""
.RightFooter = ""
End With
Next
Application.PrintCommunication = True
End Sub
Fais alors un aperçu avant impression, les 3 feuilles ont bien des entêtes et des pied de pages
Ensuite lance la macro postée dans le message#2
Puis refais un aperçu avant impression, les 3 feuilles n'ont plus ni entêtes, ni pied de page.
J'ai testé au boulot (Excel 2010)
Ça fonctionne
Je viens de tester chez moi (Excel 2013)
Cela fonctionne aussi.
Pour t'en convaincre, fais le test suivant
Dans un classeur vierge ne contenant qu'une feuille, lance la macro PrepareTEST
VB:
Sub PrepareTEST()
Dim ws As Worksheet
Sheets(1).Cells(1).Resize(10, 7) = Date
Sheets.Add.Cells(1).Resize(20, 7) = Time
Sheets.Add.Cells(1).Resize(30, 7) = Application.UserName
For Each ws In Worksheets
InsererEetPP ws
Next
End Sub
Sub InsererEetPP(ws As Worksheet)
Application.PrintCommunication = False
For Each ws In Worksheets
With ws.PageSetup
.LeftHeader = "&D"
.CenterHeader = "&P"
.RightHeader = "&T"
.LeftFooter = "&A"
.CenterFooter = ""
.RightFooter = ""
End With
Next
Application.PrintCommunication = True
End Sub
Fais alors un aperçu avant impression, les 3 feuilles ont bien des entêtes et des pied de pages
Ensuite lance la macro postée dans le message#2
Puis refais un aperçu avant impression, les 3 feuilles n'ont plus ni entêtes, ni pied de page.
Merci, mais ça ne fonctionne pas, mais j'ai dû oublié certains détails.
Mon en-tête et pied de page sont sur la première page uniquement et ce sont des des images, pas de texte.
Les pages suivantes ont une numérotation de page, mais qui peuvent disparaître.
et dernier point, j'ai déjà une macro qui transforme mon devis en situation avec un bouton sur lequel je clique et je souhaite intégrer cette macro dans ma macro globale.
Afin que tout ce transforme en cliquant sur ce fameux bouton.
Je ne peux partir d'une feuille vierge car mon doc et déjà bien avancé en général. Il ne me reste plus que cette suppression d'en-tête et pied de page.
Merci pour votre retour, je pense que ça marche oui mais pas chez moi je dois faire un truc qui ne colle pas.
Ce sont bien des images, je vous joins le fichier. Il s'agit de l'onglet "Devis" et la macro "situation".
Je ne vois pas comment l'intégrer pour que ça marche.
Ci-dessous la version courte (qui semble également fonctionner)
(En tout cas, test OK sur ton fichier Exemple)
VB:
Sub EraZerHeadeRs_Light()
With ActiveSheet.PageSetup
.DifferentFirstPageHeaderFooter = True
.FirstPage.LeftHeader.Text = ""
.FirstPage.CenterHeader.Text = ""
.FirstPage.RightHeader.Text = ""
.FirstPage.LeftFooter.Text = ""
.FirstPage.CenterFooter.Text = ""
.FirstPage.RightFooter.Text = ""
End With
End Sub
Merci ça marche parfaitement et je sais pourquoi ça ne marchait pas avant.
Car la macro supprimait les en-têtes et pied de page sur l'onglet source et pas sur l'onglet créer.