macro pour imprimer

jess07

XLDnaute Nouveau
Bonjour
J'ai une macro pour imprimer une feuille de semaine le souci que je rencontre c'est lors de l'impression sur a4 il s'imprime au milieu de la feuille laissant en haut et en bas de la marge ce que je souhaiterai agrandir en haut et en bas de façon a ce qu' il soit un peu plus visible .
J 'espère que j'ai été clair ci dessous la macro utilisé .
Je vous remerci d'avance
A bientôt


ActiveSheet.PageSetup.PrintArea = ""
With ActiveSheet.PageSetup
.LeftFooter = "&D"
End With
Application.Goto Reference:="semaine"
ActiveSheet.PageSetup.PrintArea = "semaine"
ActiveSheet.PrintPreview
MsgBox ("La zone d'impression a été modifiée")
Range("A1").Select
 

job75

XLDnaute Barbatruc
Re : macro pour imprimer

Bonjour jess07, salut Raja et jmd2

La zone d'impression est définie par le nom "semaine" et je comprends que vous voulez que cette zone occupe la plus grande place possible sur la page (unique) d'impression. J'imagine aussi que les dimensions de "semaine" peuvent varier, et c'est pourquoi vous recherchez un code VBA.

1) Annuler la zone d'impression si elle existe (menu Fichier-Zone d'impression).

2) Faites menu Fichier-Mise en page-Page et mettez le zoom à 100% de la taille normale.

3) Déterminez sur la feuille active les dimensions de la 1ère page d'impression en cochant l'option Sauts de page (menu Outils-Options-Affichage). Sur mon ordi par exemple je trouve 56 lignes et 7 colonnes.

4) Adaptez enfin dans votre macro la ligne de code suivante (elle n'est pas très difficile à comprendre) :

Code:
ActiveSheet.PageSetup.Zoom = Int(100 * Application.Min(4, [COLOR="Red"][B]56[/B][/COLOR] / Range("semaine").Rows.Count, [COLOR="Red"][B]7[/B][/COLOR] / Range("semaine").Columns.Count))

A+
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : macro pour imprimer

Re,

Le code du post précédent suppose en fait que toutes les lignes et toutes les colonnes ont la même dimension. Pour être rigoureux, il faut travailler avec les dimensions en points. Dans l'exemple choisi la base est la plage A1:G56, donc adaptez le code suivant :

Code:
ActiveSheet.PageSetup.Zoom = Int(100 * Application.Min(4, Range("A1:G56").Height / Range("semaine").Height, Range("A1:G56").Width / Range("semaine").Width))

A+
 

jess07

XLDnaute Nouveau
Re : macro pour imprimer

Bonsoir
Merci de vos réponses pour le code je l'ai mis comme ceci :

ActiveSheet.PageSetup.Zoom = Int(100 * Application.Min(4, Range("A1:G56")
.Height / Range("semaine").Height, Range("A1:G56").Width
Application.Goto Reference:="semaine"
ActiveSheet.PageSetup.PrintArea = "semaine"
ActiveSheet.PrintPreview
MsgBox ("La zone d'impression a été modifiée")
Range("semaine").Width))


Mais le prôblème ça ne marche pas je suis novice dans ce domaine
Est ce que vous pouvez encore m'aider ?
Je vous remercie d'avance
A bientôt
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : macro pour imprimer

Bonsoir jess07,

Dans votre code, la 1ère et la dernière ligne sont erronées.

Code:
ActiveSheet.PageSetup.Zoom = Int(100 * Application.Min(4, Range("A1:G56").Height / Range("semaine").Height, Range("A1:G56").Width / Range("semaine").Width))
ActiveSheet.PageSetup.PrintArea = "semaine" 
ActiveSheet.PrintPreview 
MsgBox "La zone d'impression a été modifiée"

La zone "semaine" doit bien sûr être définie préalablement. Par ailleurs, comme je l'ai expliqué, vous devez remplacer "A1:G56" par ce que vous donne votre feuille.

A+
 

jess07

XLDnaute Nouveau
Re : macro pour imprimer

Bonjour
Veuillez m'excuser pour ma réponse très tardive .
job75 merci pour ton aide mais malgrès cela le code àune erreur "erreur de complilation)

j'ai mis le code comme cela :
Est ce que vous pouvez encore m'aider ???
Exist-il d'après vos connaissance site qui me permetteras d'apprendre le vba ?
Je vous remercie d'avance (désolé encore pour ma réponse tardive )
A bientôt


ActiveSheet.PageSetup.PrintArea = ""
ActiveSheet.PageSetup.Zoom = Int(100 * Application.Min(4, Range("A1:AP34").Height
Range("semaine").Height , Range("A1:AP34").Width
Range("semaine").Width
ActiveSheet.PageSetup.PrintArea = "semaine"
ActiveSheet.PrintPreview
MsgBox "La zone d'impression a été modifiée"
 

kiki29

XLDnaute Barbatruc
Re : macro pour imprimer

Salut, des bouquins Office Automation Ltd. - Professional Excel Development
et Office Automation Ltd. - Excel 2002/2003 VBA Programmer's Reference et/ou Office Automation Ltd. - Excel 2007 VBA Programmer's Reference

Les meilleurs livres pour MS Office - Club d'entraide des développeurs francophones

Sites : FAQ MS-Excel - Club d'entraide des développeurs francophones
FAQ VBA - Club d'entraide des développeurs francophones
FAQ MS-Excel - Club d'entraide des développeurs francophones

Sans oublier Questions les plus fréquentes (FAQ) et didacticiels - Excel Downloads Forums
 

jess07

XLDnaute Nouveau
Re : macro pour imprimer

Bonjour
J'ai toujours des prôblèmes pour les impressions comme je n'arrive pas a modifier le code macro, je voudrai recréer deux boutons marco pour impression mais je ne sais pas le faire . Pouriez vous me l'expliquer ?(une qui va du lundi à vendredi et du lundi a dimanche). Est il possible aussi lors de la création des boutons d'impressions d'agrandir uniquement en hauteur ( hauteur en haut et hauteur en bas .

je vous remercie d'avance
A bientôt
 

Discussions similaires

Statistiques des forums

Discussions
312 922
Messages
2 093 658
Membres
105 778
dernier inscrit
Ricky22