Image en entête que sur la 1ère page

Le
rmill...
Bonjour,

Je recherche une façon d'avoir une image dans l'entête mais que sur la 1ère page.

Ailleurs je réussi Í  le faire avec du code mais je n'imprime que cette feuille. J'imprime que la 1ère page et je poursuit avec le reste.

Alors que lÍ  la feuille en question fait partie d'une impression de d'autres feuilles. Et j'ai besoin d'imprimer que d'un seul coup.

Curieusement dans les options de mise en page pour les entêtes et les pieds de page il y a l'option Page paires et impaires différentes et l'option Première page différente. Disons qu'il y a 3 pages Í  l'impression. Aucune des ces options me permet d'imprimer que la 1ère page avec l'image en entête. Il y a peut-être quelque chose qui m'échappe??

Merci Í  l'avance.
  • Partager ce contenu :
Vos réponses Page 1 / 2
Trier par : date / pertinence
MichD
Le #26565948
Le 21/01/21 Í  14:23, a écrit :
Bonjour,
Je recherche une façon d'avoir une image dans l'entête ... mais que sur la 1ère page.
Ailleurs je réussi Í  le faire avec du code mais je n'imprime que cette feuille. J'imprime que la 1ère page et je poursuit avec le reste.
Alors que lÍ  la feuille en question fait partie d'une impression de d'autres feuilles. Et j'ai besoin d'imprimer que d'un seul coup.
Curieusement ... dans les options de mise en page pour les entêtes et les pieds de page ... il y a l'option Page paires et impaires différentes et l'option Première page différente. Disons qu'il y a 3 pages Í  l'impression. Aucune des ces options me permet d'imprimer que la 1ère page avec l'image en entête. Il y a peut-être quelque chose qui m'échappe??
Merci Í  l'avance.


Bonjour,
Le principe est simple.
Tu définis les options de "PageSetUp" pour les feuilles sans image dans
l'en-tête et une pour la feuille ayant une image. Cela donne un code
ressemblant Í  ceci :
Attention aux coupures de lignes par le service de messagerie.
(pas tester)
'--------------------------------------------------------
Sub test()
Dim A As Long, Nb As Long
With Feuil1
Nb = (.HPageBreaks.Count + 1) * (.VPageBreaks.Count + 1)
If MsgBox("La feuille """ & .Name & """ sélectionnée génère " & Nb & _
" page(s) d'impression." & vbclf & vbCrLf & _
"Désirez-vous continuer?", vbInformation + vbYesNo,
"Attention") = vbYes Then
For A = 1 To Nb
If A = 2 Then 'Exemple si la page 3 demande une image dans
l'en-tête
'2 représente le numéro de la page avec image
'Í  toi de choisir le numéro de cette page
With .PageSetup
'options que tu désires pour la mise en page + image
End With
.PrintOut From:=A, to:=A, collate:=True
Else
'pour toutes les autres feuilles sans image
With .PageSetup
'les options requises
End With
.PrintOut From:=A, to:=A, collate:=True
End If
Next
Else
MsgBox "Impression annulée.", vbInformation + vbOKOnly, "Attention"
End If
End With
End Sub
'--------------------------------------------------------
MichD
rmill...
Le #26565959
Bonjour Í  nouveau,
Merci. Je crois bien comprendre le code. Mais je n'ai pas été assez précis. Désolé c'est ma faute. Car je dois amener le tout en Aperçu avant tout.
Si cela vous est possible ... j'ai inscrit ci-dessous mon code actuel qui inclus 3 feuilles de calcul. Avant d'exécuter ce code il y a déjÍ  une image dans l'entête dans la feuille 17. Il y a 3 pages donc 2 sauts de page dans la feuille et il me faudrait l'image que pour la page 1.
Croyez-vous que cela peut alors se faire? Peut-être faut-il alors modifier la technique utilisée? Merci ... encore ... Í  l'avance.
ReDim Preserve mysht(ib)
mysht(ib) = Feuil36.Name
Debug.Print Feuil36.Name
ib = ib + 1
ReDim Preserve mysht(ib)
mysht(ib) = Feuil17.Name
Debug.Print Feuil17.Name
ib = ib + 1
ReDim Preserve mysht(ib)
mysht(ib) = Feuil83.Name
Debug.Print Feuil83.Name
ib = ib + 1
Application.ScreenUpdating = True
Sheets(mysht).PrintPreview
MichD
Le #26565962
Le 21/01/21 Í  17:07, a écrit :
Bonjour Í  nouveau,
Merci. Je crois bien comprendre le code. Mais je n'ai pas été assez précis. Désolé c'est ma faute. Car je dois amener le tout en Aperçu avant tout.
Si cela vous est possible ... j'ai inscrit ci-dessous mon code actuel qui inclus 3 feuilles de calcul. Avant d'exécuter ce code il y a déjÍ  une image dans l'entête dans la feuille 17. Il y a 3 pages donc 2 sauts de page dans la feuille et il me faudrait l'image que pour la page 1.
Croyez-vous que cela peut alors se faire? Peut-être faut-il alors modifier la technique utilisée? Merci ... encore ... Í  l'avance.
ReDim Preserve mysht(ib)
mysht(ib) = Feuil36.Name
Debug.Print Feuil36.Name
ib = ib + 1
ReDim Preserve mysht(ib)
mysht(ib) = Feuil17.Name
Debug.Print Feuil17.Name
ib = ib + 1
ReDim Preserve mysht(ib)
mysht(ib) = Feuil83.Name
Debug.Print Feuil83.Name
ib = ib + 1
Application.ScreenUpdating = True
Sheets(mysht).PrintPreview


Moi, je t'avoue que je n'ai rien compris. Le code que tu as publié
devrait servir Í  quoi?
Si la seule différence entre les 3 feuilles que tu veux imprimer dans le
classeur et l'en-tête avec une image et que le reste de la mise en page
est identique pour les 3 feuilles, je te propose une manière de procéder
dans macro.
A ) Tu sélectionnes la feuille devant avoir une image dans l'en-tête
B ) Menu "Mise en page" du ruban, dans le coin inférieur gauche de la
section "Mise en page", clique sur le petit carré.
C ) dans la fenêtre ouvrante, onglet "En-tête / pied de page / tu
insères l'image que tu désires avoir dans l'en-tête.
D ) quand tu enregistres ton classeur, les mises en page s'enregistrent
aussi avec les données du classeur.
E ) Pour imprimer ton classeur, Fichier / imprimer / Sous paramètres /
tu choisis dans la liste déroulante, l'option qui convient, tu peux même
définir la page de départ et la dernière page Í  imprimer.
F ) Dans le bas de la fenêtre "imprimer", tu peux visualiser chacune des
feuilles Í  imprimer.
G ) Si la feuille ayant un en-tête avec une image et que cette feuille
contient plus qu'un saut de page, l'image va apparaͮtre sur chaque page
imprimée pour cette feuille. Sauf si tu utilises une macro...
======================================================================== Dans la procédure, tu dois définir le nom de l'onglet de la feuille dont
l'en-tête contient une image, le chemin et le nom de l'image
'Tu dois activer dans la procédure les lignes de commandes
.PrintOut From:=A, To:=A, collate:=True
en enlevant l'apostrophe devant la ligne.
Les images vont être visibles seulement au moment d'imprimer!
À tester... Attention au coupures des lignes par le service de messagerie
'------------------------------------------------------
Sub test()
Dim A As Long, Nb As Long
Dim Sh As Worksheet
Dim Numéro_Feuille As Long
'Définit le numéro_Feuille o͹ tu veux avoir une image en en-tête
For Each Sh In ThisWorkbook.Worksheets
With Sh
Nb = 0
'nb = nombre de page de papier pour l'impression
'de toutes les feuilles du classeur
Nb = Nb + (.HPageBreaks.Count + 1) * (.VPageBreaks.Count + 1)
'Le nom de l'onglet o͹ la première page doit avoir un en-tête
For A = 1 To Nb
If UCase(.Name) = UCase("Feuil1") Then
'C'est la première page
If A = 1 Then
With .PageSetup
'Insertion de l'image
.LeftHeaderPicture.Filename "C:UsersmichdOneDriveImagesHumour.jpg"
'OU
'.CenterHeaderPicture = ....
'OU
'.RightHeaderPicture = ....
'les autres options
.CenterHorizontally = True
.CenterVertically = True
'etc
End With
'La commande PrintPreview ne permet pas de définir
'les paramètre from et to.
.PrintPreview
'enlever l'apostrophe devant la ligne suivante pour
imprimer
'PrintOut From:=A, To:=A, collate:=True
Else
With .PageSetup
'pour les autres pages de cette feuille
.LeftHeaderPicture.Filename = ""
.CenterHorizontally = True
.CenterVertically = True
'etc
End With
'La commande PrintPreview ne permet pas de définir
'les paramètre from et to.
.PrintPreview
'enlever l'apostrophe devant la ligne suivante pour
imprimer
'.PrintOut From:=A, To:=A, collate:=True
End If
Else
With .PageSetup
'pour les autres feuilles de calcul
'pour les autres pages de cette feuille
.LeftHeaderPicture.Filename = ""
.CenterHorizontally = True
.CenterVertically = True
'etc
End With
'La commande PrintPreview ne permet pas de définir
'les paramètre from et to.
.PrintPreview
'enlever l'apostrophe devant la ligne suivante pour
imprimer
'.PrintOut From:=A, To:=A, collate:=True
End If
Next
End With
Next
End Sub
'------------------------------------------------------
MichD
rmill...
Le #26566015
OK encore un grand merci.
J'ai réussi ... mais en envoyant l'impression ... papier.
Si je comprends bien ... alors ... par exemple si je voulais imprimer le tout en un seul fichier .pdf ... d'un seul coup ... cela ne serait alors pas possible? Car c'est surtout ce que je recherche Í  faire. À moins que je ne comprenne pas un bout Í  nouveau.
MichD
Le #26566020
Le 22/01/21 Í  12:27, a écrit :
OK encore un grand merci.
J'ai réussi ... mais en envoyant l'impression ... papier.
Si je comprends bien ... alors ... par exemple si je voulais imprimer le tout en un seul fichier .pdf ... d'un seul coup ... cela ne serait alors pas possible? Car c'est surtout ce que je recherche Í  faire. À moins que je ne comprenne pas un bout Í  nouveau.


Directement, je ne crois pas que c'est possible Í  partir d'Excel! Mais
il y a plusieurs logiciels qui peuvent combiner plusieurs fichiers .pdf
en un seul fichier. Mais lÍ , mes connaissances sont plutÍ´t limitées.
MichD
rmill...
Le #26566022
Oui merci. Vous m'aviez déjÍ  d'ailleurs aidé pour l'utilisation de PDF Creator je crois bien. Je vais regarder de ce cÍ´té
Mais Í  votre connaissance ... ce que PDF Creator offre ... c'est-Í -dire de pouvoir ajouter dans une file une liste de fichiers pour ensuite les fusionner ... existe t'il vraiment un autre logiciel? Car alors dans PDF Creator ... on peut y ajouter d'autres types de fichiers tels que .doc ... et je réussi Í  y ajouter aussi des fichiers .pdf.
MichD
Le #26566021
Le 22/01/21 Í  13:16, a écrit :
Oui merci. Vous m'aviez déjÍ  d'ailleurs aidé pour l'utilisation de PDF Creator je crois bien. Je vais regarder de ce cÍ´té
Mais Í  votre connaissance ... ce que PDF Creator offre ... c'est-Í -dire de pouvoir ajouter dans une file une liste de fichiers pour ensuite les fusionner ... existe t'il vraiment un autre logiciel? Car alors dans PDF Creator ... on peut y ajouter d'autres types de fichiers tels que .doc ... et je réussi Í  y ajouter aussi des fichiers .pdf.


À bien y penser, il y a plus facile...
Ce que tu peux faire, c'est une petite macro qui crée un fichier Excel
temporaire que pour l'impression qui comprendrait :
A ) une feuille de calcul pour chaque page Í  imprimer de la feuille
devant contenir un en-tête avec une image. Tu pourrais alors ajouter une
image que pour la première page d'impression.
B ) une copie des 2 autres feuilles Í  imprimer vers le fichier temporaire
C ) Reste plus qu'Í  lancer l'impression de ce fichier temporaire en PDF.
D ) Tu supprimes le fichier temporaire Í  la fin de l'opération.
MichD
rmill...
Le #26566065
Oui c'est une excellente idée. Je vais y aller de cette façon. Encore merci.
MichD
Le #26566066
Le 23/01/21 Í  13:25, a écrit :
Oui c'est une excellente idée. Je vais y aller de cette façon. Encore merci.


Désolé, je ne suis pas un spécialiste d'impression de document avec
Excel mais je crois avoir trouvé une manière toute simple de procéder
sans macro!
D'abord, fais disparaÍ®tre les images que tu as pu insérer dans l'en-tête
de page et enregistre le fichier.
A ) Menu Insertion du ruban
B ) Très Í  droite sur le ruban : Section : Texte / Un clic sur le
symbole sous le menu "Texte" / En-tête/Pied
C ) À l'écran, sélectionner la section sous "En-tête" o͹ tu veux insérer
l'image, Í  gauche, centre ou Í  droite.
D ) Dans le nouveau menu qui s'affiche l'onglet "Création" du ruban
1 - Cliquer su l'icÍ´ne "Image". Cela te permet de choisir
l'image que tu veux insérer dans l'en-tête
2 - Cocher dans le menu Création du ruban, l'option
"première page différente"
3 - Si tu veux insérer autre chose dans les autres sections
de l'en-tête, tu as d'autres icÍ´nes dans le menu Í  cet
effet.
D ) Tu cliques dans une des cellules de la feuille pour revenir Í  un
affichage normal ou en utilisant l'icÍ´ne dans le coin inférieur
bas de l'application.
E ) Si tu enregistres le fichier, tu sauvegardes en même temps la mise
en page.
VoilÍ ... tu es prêt Í  imprimer...
MichD
rmill...
Le #26566078
Bonjour.
Je connaissais pas non plus cette fonction. Oui curieusement j'arrive Í  faire afficher l'image que sur la page 1 sur la feuille en question. Contrairement Í  si on passe par les options de mise en page (imprimer les titres) dans l'onglet Entêtes et pieds de page ... dont l'option Première page différente afficher l'image Í  partir de la page 2 ... et non sur la page 1. Cette dernière option que vous me démontrez affiche que sur la 1ère page. Super.
Mais ... je dois sélectionner plusieurs feuilles avant d'amener le tout en aperçu avant impression. Et ... si ... la feuille qui contient l'image et qui a 3 page ... n'est pas la 1ère feuille ... alors l'image n'apparait pas du tout???
Donc en ayant plusieurs feuilles de sélectionnées et que cette feuille n'est pas la 1ère sélectionnée ... je n'arrive pas Í  afficher l'image. Je ne sais si par VBA il serait possible de déjouer Excel.
Poster une réponse
Anonyme