Mise en page

E

Edouard

Guest
Bonjour le forum

J’ai besoin d’une macro qui soit capable dans un classeur de 6 feuilles, d’écrire en en tête de page partie centrale « Coupe formation Niv4 » en partie gauche « la valeur de la cellule H20 de la feuille 1 » en partie droite « la valeur de la cellule H21 de la feuille 1».
Cela sur les feuilles 3 ; 4 ; 5 ; et rien sur les feuilles 1 ; 2 ; 6.

Merci d’avance à celui qui pourra me dépanner ; Tout ce que je me doute c’est que cette macro doit placer dans le Workbook.
 
K

K@d

Guest
Bonjour !

Le code suivant devrait t'aider dans la réalisation de ton "projet".
Il suffit de l'insérer dans VBA (Alt+F11 puis coller) avant de placer un bouton sur le classeur pour la lancer par exemple...

Sub Mettre_Entete

'on sélectionne les feuilles voulues (je rentre ici les noms en dur, on peut faire mieux)
Sheets(Array("Feuil3", "Feuil4", "Feuil5"))Select

With ActiveSheet.PageSetup

'en tete en haut à gauche (arial 11) --> exemple
.LeftHeader = "&""Arial,Regular""&11"&ThisWorkbook.Sheets(1).Range("H20").Value

'au centre (arial gras 12) --> exemple
.CenterHeader = "&""Arial,Bold""&12Coupe formation Niv4"

'et à droite
.RightHeader = "&""Arial,Regular""&11"&ThisWorkbook.Sheets(1).Range("H21").Value

End With


End Sub


Bon courage !

Clément

"S'il n'y a pas de solution, c'est qu'il n'y a pas de problème."
 
E

Edouard

Guest
Bonjour Clément et merci

J’ai un souci avec ton code, au moment du lancement j’ai un message « erreur de compilation » sur la ligne de désignation des feuilles ;
Qu’elle instruction rajouter pour que cette macro s’exécute au lancement de l’aperçu avant impression ?
À+
 
K

K@d

Guest
Re,

déjà, il y a une erreur dans mon code...
Lire (avec un point c'est mieux) :

Sheets(Array("Feuil3", "Feuil4", "Feuil5")).Select

Attention à remplacer Feuil3 par le nom de la feuille n°3 du classeur etc...
Sinon, pour éxécuter avant un aperçu avant impression, je dois avouer que je ne sais pas... :0(
J'ai une solution mais elle concerne l'éxécution avant l'impression...
Sous VBA, insérer dans le module ThisWorkbook les lignes suivantes :

Private Sub Workbook_BeforePrint(Cancel As Boolean)

Call Mettre_Entete

End Sub

Désolé et bon courage !

Clément

"S'il n'y a pas de solution, c'est qu'il n'y a pas de problème."
 
E

Edouard

Guest
Bonsoir Clément et le forum

J’ai fait la correction que tu m’as indiquée mais cela ne fonctionne pas bien.
Voir sur l’exemple
À+
 

Pièces jointes

  • Classeur1.zip
    8.6 KB · Affichages: 14
  • Classeur1.zip
    8.6 KB · Affichages: 15
  • Classeur1.zip
    8.6 KB · Affichages: 16
K

K@d

Guest
Re-,

voici le même classeur mais avec une version "corrigée".
Ne pas oublier de mettre comme sur l'exemple les valeurs des en-têtes sur les cellules H20 et H21 de la feuille 1.
La macro s'éxécute automatiquement avant l'impression.

A disposition pour plus d'informations !

Clément
 

Pièces jointes

  • Entete.zip
    9.8 KB · Affichages: 15
  • Entete.zip
    9.8 KB · Affichages: 15
  • Entete.zip
    9.8 KB · Affichages: 14
E

Edouard

Guest
Bonjour clément

Et merci de suivre mon Pb

La macro fonctionne mieux mais l’inconvénient maintenant, c’est que quelle que soit la feuille active pour laquelle on demande un aperçu avant impression on aboutit toujours sur la feuille 5.

À+
 
K

K@d

Guest
Re-re, :0)

le même fichier avec le souci corrigé. Effectivement, je ne revenais pas sur la feuille active avant l'aperçu avant impression.

Bonne continuation !

Clément
 

Pièces jointes

  • Entete.zip
    10.7 KB · Affichages: 23
  • Entete.zip
    10.7 KB · Affichages: 21
  • Entete.zip
    10.7 KB · Affichages: 23
E

Edouard

Guest
Ok Clément
Ça marche

Tu vas dire que je suis exigeant, mais l’expérience m’a prouvé qu’il vaut mieux prévoir les évolutions.
Y a-t-il un moyen simple de construire la macro pour prévoir ces évolutions ?

Exemple : la Feuil1 est nommée Date avec entête
Feuil2 Accueil sans entête
Feuil3 Notice sans entête
Feuil4 Semaine avec entête
Feuil6 Mois avec entête
Feuil7 (nouvelle) Bilan avec entête
Feuil8 (nouvelle) Table sans entête

La présentation serait identique (gauche-centre-doite pour les entêtes) on spécialise la présentation des feuilles.
À+
 

Discussions similaires

Statistiques des forums

Discussions
313 131
Messages
2 095 543
Membres
106 290
dernier inscrit
rmaimouni