Mise en page en VBA

Bonjour,

Je coince pour modifier les macros d'impression définies dans le fichier (elles ne fonctionnent pas)

J'ai tenté de garder la macro existante et d'attribuer un nom à une zone d'impression avec cette formule :

      Sub PLANNING()
         Range("nom de la sélection").Select
         ActiveSheet.PageSetup.PrintArea = "nom de la sélection"
         ActiveWindow.SelectedSheets.PrintOut Copies:=1
      End Sub

Mais cette solution est compliquée et répétitive pour chaque onglet mensuel. Je pensais que de définir un nom aurait été répercuté sur les autres onglets mais ce n'est pas le cas ...

Je souhaiterais attribuer au bouton

Impression planning : "B1:AH52"

Impression bilan mensuel : "B69:AA95"

Impression bilan annuel : "B98:AA124"

Impression bilan absences : "B127:O158"

Existe t-il un moyen moins compliquer que d'attribuer un nom à chaque zone pour chaque onglet ?

Merci !

Bonjour,

J'avance une peu ....

Pour les zones d'impression, c'est bon, le pb est réglé.

Par contre je ne sais comment :

- retirer le pied de page

lorsque je supprime LeftFooter, CenterFooter, RightFooter, je ne vois aucun changement

- Changer les marges (Je voudrais que l'impression soit défini sur 1 page en largeur et 1 page en hauteur)

J'ai tenté sans succés -->

PageSetup.RightMargin = "0"

PageSetup.LeftMargin = "0"

PageSetup.TopMargin = "1"

PageSetup. BottomMargin = "0"

- modifier l'en tête qui apparait sur 2 lignes (je souhaiterais sur la même ligne)

.CenterHeader = "&""Times New Roman,Gras""&16Planning " & TypePlanning & " de " & Format([A1], "mmmm yyyy") & Chr(10) & Chr(10) _ & Sheets("Accueil").[J2]

Merci des réponses que vous pourrez m'apporter.

Edit : Avec le fichier joint, ce sera certainement plus clair

pourquoi tu n'utilises pas l'enregistreur de macro pour avoir tes paramètres.

tu fais outils>macro...>nouvelle macro>ok

et là tu fais tes réglages d'impression, aperçu avant impression, page... puis tu modifies comme tu veux

une fois terminé tes paramétrages : outils>macro...>arrêter l'enregistrement

tu auras alors tout tes paramétrages pour ton impression

pour définir sur 1 page en largeur et 1 page en hauteur

.FitToPagesWide = 1

.FitToPagesTall = 1

pour l'en tête, diminues la police

Bonsoir FABICHON,

Oui, c'est une solution à laquelle j'avais pensé mais la macro actuelle me permet d'imprimer soit le planning, soit les différents bilans mensuels et annuels, définis par des zones d'impression différentes.

Si j'utilise la fonction enregistrement, je ne peux le faire que pour une seule zone d'impression non ?

A moins qu'il y ai une méthode que je ne connaisse pas ...

Je vais déjà entrer tes formules et modifier la police. Merci pour ces infos.

Problèmes réglés :

  • marges (il fallait retirer Page.Setup)
  • En tête (merci Fabichon)

Par contre, je ne parviens pas à retirer les pieds de page.

Ils font référence à des cellules sur l'onglet accueil. Celles-ci sont vides mais il reste apparent des ":" en pied de page.

J'ai supprimé :

        .LeftFooter = "&12" _
        & Sheets("Accueil").[F8] & " : " & Sheets("Accueil").[G8] & Chr(10) _
        & Sheets("Accueil").[F9] & " : " & Sheets("Accueil").[G9] & Chr(10) _
        & Sheets("Accueil").[F10] & " : " & Sheets("Accueil").[G10] & Chr(10) _
        & Sheets("Accueil").[F11] & " : " & Sheets("Accueil").[G11]

        .CenterFooter = "&12" _
        & Sheets("Accueil").[F12] & " : " & Sheets("Accueil").[G12] & Chr(10) _
        & Sheets("Accueil").[F13] & " : " & Sheets("Accueil").[G13] & Chr(10) _
        & Sheets("Accueil").[F14] & " : " & Sheets("Accueil").[G14] & Chr(10) _
        & Sheets("Accueil").[F15] & " : " & Sheets("Accueil").[G15]

        .RightFooter = "&12" _
        & Sheets("Accueil").[F16] & " : " & Sheets("Accueil").[G16] & Chr(10) _
        & Sheets("Accueil").[F17] & " : " & Sheets("Accueil").[G17] & Chr(10) _
        & Sheets("Accueil").[F18] & " : " & Sheets("Accueil").[G18] & Chr(10) _
        & Sheets("Accueil").[F19] & " : " & Sheets("Accueil").[G19]

Mais cela ne change rien, j'ai toujours ce ":" qui apparait ...

Je viens de trouver.

Il ne s'agit pas de modifier la macro mais simplement la mise en pageà chaque onglet.

Je pensais que la macro prenait le dessus, quelque soit la mise en page définie dans excel.

Rechercher des sujets similaires à "mise page vba"