Définir une plage d'impression par macro

Jocelyn

XLDnaute Barbatruc
Bonjour le Forum,

Bon alors aujourd’hui une petite question qui concerne le Vba, je vais essayé d’etre clair (hum hum pas gagné).

Dans le fichier joint j’ai une feuille sur laquelle se trouve 24 zones d’impressions trés réguliere du genre A1 :C27 , E1 :G27 , I1 :K27 , A29 :C55 , etc……

Dans un premier temps en passant par mise en page j’avais défini les différentes zones d’impression mais une catastrophe du point temps surtout que le fichier contient 10 page comme celle-ci.

Alors ma question est il possible d’avoir 1 bouton par feuille qui lance une boite de dialogue dans laquelle on puisse indiquer la zone a imprimer soit en indiquant A1 :C27 soit en indiquant 1 en ayant définit auparavant 1=zone A1 :C27 , 2=zone E1 :G27 et qu’en cliquant oui sur la boite de dialogue l’impression soit lancées

Un petit plus si c’est réalisable serait que le bouton qui lance la boite de dialogue suive les déplacement que je fait dans les feuilles.

Evidement j’ai essayé de faire un enregistrement macro mais comme d’habitude je n’ai pas été en mesure de le mettre en place j’enrage.

Merci déjà de m’avoir lu

Et merci d’avance a ceux ou celles qui pourront m’aider

Jocelyn [file name=Classeur1_20060404092114.zip size=23565]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Classeur1_20060404092114.zip[/file]
 

Pièces jointes

  • Classeur1_20060404092114.zip
    23 KB · Affichages: 52

KIM

XLDnaute Accro
Bonjour Pierrejean, jocelyn et le forum
J'en profite de ce fil et vous en remercie.
Pour Jocelyn les zones sont bien définies.
Dans mon appli j'ai nommé mes zones d'impression
(menu insertion/nom/Définir). J'en ai plusieurs.
- Est-il possible dans la dernier version (jocelyn3) de mofifier le USF d'impression pour avoir la liste des Noms défini dans le classeur à la place de la liste des plages, avec le meme principe d'en selectionner 1 nom ou plusieurs à imprimer.
- Est-il possible de rajouter dans le USF un bouton pour visualiser avant impression.
Merci d'avance
Amicalement
KIM
 

Jocelyn

XLDnaute Barbatruc
re pierre,
Bonjour Kim,

bon alors en attendant le retour de pierrejean j'ai voulu voir un peu dans la version jocelyn3bis, il y a un bouton pour l'apperçu seulement le Userform cache en partie l'apperçu.

et en ce qui concerne le fait d'entrer des nm de plage la zéro.

en fin de compte plus j'apprend en VBA plus j'oublie donc moins je sais conclusion il vaut mieux que j'arrete d'apprendre :) :eek: :evil: :whistle:

Bon j'espere que pirrejean vas repasser par la.

Jocelyn

la preuve j'arrive même plus a mettre les fichiers en ligne [file name=jocelyn3bis.zip size=45915]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/jocelyn3bis.zip[/file]

Message édité par: Jocelyn, à: 06/04/2006 10:48
 

Pièces jointes

  • jocelyn3bis.zip
    44.8 KB · Affichages: 26

pierrejean

XLDnaute Barbatruc
@ KIM

bonne idée de nommer les plages: en fait cela simplifie le code

@ Jocelyn
bonne idée egalement que l'aperçu
et je t'en prie , continue à apprendre
c'est tellement bien quand on a décidé d'obtenir ça et qu'on obtient ça !!
evidemment il y faut du temps ,de la perseverance et on est rarement au top dans tous les secteurs (efficacité, orthodoxie, elegance....) mais le forum est generalement indulgent [file name=jocelyn3ter.zip size=45806]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/jocelyn3ter.zip[/file]
 

Pièces jointes

  • jocelyn3ter.zip
    44.7 KB · Affichages: 43

KIM

XLDnaute Accro
Re, Pierrejean, jocelyn et le forum
Merci,
Y-a-t-il possibilité de paramétrer le nombre de plages par feuille d'impression?
Cela permettra de definir des plages de taille différente à imprimer.
Merci d'avance
Amicalement
KIM
 

pierrejean

XLDnaute Barbatruc
salut KIM

bonne question et je te remercie de l'avoir posée......

ben ... je vais regarder, mais la, il commence à y avoir challenge !!!!

il ne suffit pas de parametrer le nbre de plages il faut encore decider ou les mettre en fonction de leurs tailles

je laisse decanter un peu et te tiens au courant
 

didus

XLDnaute Occasionnel
Re : Définir une plage d'impression par macro

Bonjour,

Si je me permet de m'imiscer dans vos discussions, c'est que ma question concerne trés directement ce sujet et que mes recherches ont, pour l'instant été infructueuses...

Voilà, c'est simple, mais je ne suis pas parvenu à la fin d'une grosse macro de mise en forme de 4 tables différentes, et mises à jour réguliérement, à determiner par macro la taille de ma zone d'impression pour arriver sur l'apercu avant impression, définitif, de ma feuille de calcul resultant de ma macro.
Quand je créé ma macro, en selectionant ma plage par CTRL+* celle ci me valide la plage définie et non pas le geste, ce qui fait que je ne peux mettre en automatique mes futures zones d'impression résultants de mes nouvelles sources.

Je ne sais si j'ai été clair, en résumé c'est determiner par macro l'ensemble d'un tableau de dimension variable, pour en faire une zone d'impression.

D'avance merci
 

didus

XLDnaute Occasionnel
Re : Définir une plage d'impression par macro

Bien, pas de réponses, je n'ai pas chomé pendant ce temps là, je me suis inspiré de quelques bribes trouvées de ci de là, et je suis parvenu à determiner ma plage de travail, comme suit
1) avant mes sous totaux, voici le code:
Sheets("recap").Select
' traitement long 20mn mini (8mn avec bi-pro 64)
Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Subtotal GroupBy:=1, Function:=xlSum, TotalList:=Array(7, 8, 9, 10 _
, 11, 12, 13, 14, 15, 16, 17, 18), Replace:=True, PageBreaks:=False, _
SummaryBelowData:=True

2) avant ma mise en page, voici le code:
Calculate
Sheets("Definitif").Select
Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.CurrentRegion.Select
With ActiveSheet.PageSetup
.PrintTitleRows = "$1:$3"
.PrintTitleColumns = ""
End With
ActiveSheet.PageSetup.PrintArea = ActiveCell.CurrentRegion.Address
With ActiveSheet.PageSetup
.LeftHeader = ""
.CenterHeader = _
"&""Arial Baltic,Gras""&18Restitution Mise en forme de CNS53 - Eotp - Mes"
.RightHeader = "&D"
.LeftFooter = "&F"
.CenterFooter = ""
.RightFooter = "&P / &N"
.LeftMargin = Application.InchesToPoints(0.35)
.RightMargin = Application.InchesToPoints(0.27)
.TopMargin = Application.InchesToPoints(0.67)
.BottomMargin = Application.InchesToPoints(0.47)
.HeaderMargin = Application.InchesToPoints(0.43)
.FooterMargin = Application.InchesToPoints(0.31)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintNoComments
.PrintQuality = 300
.CenterHorizontally = True
.CenterVertically = False
.Orientation = xlLandscape
.Draft = False
.PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 20
End With
ActiveWindow.SelectedSheets.PrintPreview


Si cela peut solutionner les problémes d'autres personnes, alors c'est tout good!

Bon dimanche à tous
 
Dernière édition:

Statistiques des forums

Discussions
312 364
Messages
2 087 624
Membres
103 624
dernier inscrit
PhilduMorvan