VBA : déplacer des sauts de page automatiques

PlugNplay

XLDnaute Nouveau
Bonjour,

J'ai développé une macro dans un classeur gérant les adhérents d'une association. Cette macro permet de dresser les reçus fiscaux des adhérents ayant versé leur cotisation, puis de les imprimer.
Je me sers d'un modèle de reçu fiscal que j'ai créé sur une feuille de mon classeur ; la macro le copie autant de fois que nécessaire sur une autre feuille, puis complète les informations (noms des adhérents, adresses, etc.)

La génération ne me pose aucun problème, en revanche je bloque depuis un bon moment au moment de la mise en page avant de lancer l'impression : un reçu fiscal fait une largeur de trois colonnes, or par défaut Excel me place un saut de page toutes les deux colonnes.
Manuellement, je n'ai qu'à passer en vue Sauts de page, et à déplacer le premier saut de page vertical d'une colonne sur la droite ; Excel ajuste automatiquement tous les autres. Mais impossible de reproduire ce comportement par du code VBA ! :confused:

Excel différencie deux types de sauts de page :
  • Les sauts de page automatiques : ceux qu'il place par défaut, sans intervention de l'utilisateur
  • Les sauts de page manuels : ce sont
    • soit des sauts automatiques modifiés (manuellement, par le code on ne peut pas) par l'utilisateur
    • soit des sauts de page ajoutés (manuellement ou par le code)

J'ai passé en revue toutes les propriétés et méthodes concernant les sauts de page. Je parviens à lui faire ajouter un saut de page entre ma 3e et 4e colonne, mais le saut de page automatique, situé entre la 2e et la 3e colonne, ne disparaît pas, et malgré tous mes efforts, je ne réussis pas à le supprimer. J'ai aussi cherché comment décaler directement le saut de page automatique, mais je n'ai rien trouvé :(
Ci-joint vous trouverez deux captures d'écran : la première avec les sauts de page générés automatiquement, la deuxième avec les sauts de page tels que je souhaiterais les avoir (et que j'ai ici placés manuellement bien sûr).

Donc à tous ceux qui sauraient comment faire, ou auraient une idée pour contourner le problème (je ne veux pas que les futurs utilisateurs aient besoin de décaler manuellement les sauts de page avant de lancer l'impression !), merci d'avance. N'hésitez pas si vous avez besoin de précisions.
J'ai un bon niveau en VBA.

Plug&Play

PS : mes captures d'écran sont réalisées sous Excel 2007, mais je travaille principalement sous Excel 2003, d'où le préfixe de ce post :)
 

Pièces jointes

  • Sauts automatiques.jpg
    Sauts automatiques.jpg
    94.7 KB · Affichages: 253
  • Sauts rectifiés main.jpg
    Sauts rectifiés main.jpg
    93.4 KB · Affichages: 246

Robert

XLDnaute Barbatruc
Repose en paix
Re : VBA : déplacer des sauts de page automatiques

Bonjour PlugNPlay, bonjour le forum,

Peut-être comme ça (non testé) :
Code:
With ActiveSheet.PageSetup
    .FitToPagesWide = 3
    .FitToPagesTall = 2
End With
 

PlugNplay

XLDnaute Nouveau
Re : VBA : déplacer des sauts de page automatiques

Bonsoir,
Merci de ta réponse.
Je viens d'essayer, parce que je ne me souvenais plus ce que faisaient ces méthodes. Le code s'est exécuté sans problème, seulement au niveau de mes sauts de page ça n'a rien changé, ils n'ont pas bougé.
Alors je suis allée me remettre en mémoire ces méthodes. En réalité, mon problème ne vient pas de l'adaptation de ma zone d'impression à une page A4, mais de l'emplacement des sauts de page. Cela aurait peut-être pu fonctionner, mais malheureusement non :(
 

Discussions similaires

Réponses
2
Affichages
185