Bug sur le zoom en impression ?
Bonjour à tous,
Je vous expose mon problème.
J'ai crée un fichier avec des feuilles qui changent de dimension. La plage est toujours la même, mais les colonnes et les lignes se modifient. Tout est nickel !
Le problème arrive à l'impression ou la sortie PDF.
Après avoir mis à 0 toutes les marges de la feuille, les en tête, centré et formaté le papier, je n'arrive pas à avoir une sortie correcte en utilisant la méthode :
.zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 1le feuilles petites sont correctes mais les grandes feuilles ont des marges énormes, qui réduisent l'image à une miniature. (???)
J'ai alors pensé d'utiliser la propriété : .zoom que je peux calculer selon leur taille.
Mais alors dans ce cas (et pour la même feuille) si elle marche par exemple avec un facteur 44% ou 60 ne marche pas avec 45 ou 33 ou autre, de façon totalement aléatoire, et les pages (aperçu inclus) restent totalement blanches...
Je précise que ces deux phénomènes se présentent même sans passer par VBA, mais simplement par les menus d'impression quand on quand on adapte la page automatiquement ou on insère un facteur de zoom manuellement.
Je précise aussi que j'utilise la toute nouvelle version excel mac 2011, car mon fichier doit obligatoirement être multiplateforme... Je n'ai pas de PC à la maison pour voir s'il s'agit d'un bug propre à cette version.
Que faire ? Avez vous une idée ? je suis aux abois... C'est la seule chose qui me manque pour finir mon long travail, et elle était totalement imprévue.
Merci d'avance pour toute réponse utile.
P.S. autre bug sur Mac (ou mauvaise documentation), la méthode filtre:= de GetSaveAsFilename() qui ne répertorie nulle part la syntaxe pour le mac (celle du type "pdf file (*.pdf)" sur pc). J'ai parcouru le forum de la terre entière sans réponse...
Bien à vous,
Piero
Bonjour,
le feuilles petites sont correctes mais les grandes feuilles ont des marges énormes, qui réduisent l'image à une miniature. (???)
Je pense que le pb vient de ton instruction "fittopage". Utilise plutôt le ZOOM.
Une chose aussi à savoir est qu'excel conserve les paramètres imprimantes, ce qui dans ton cas pourrait justifier ton souci si tu as changé d'imprimante ne fusse qu'à l'enregistrement de ton fichier.
Lorsque tu parles de feuilles petites ou grandes, de quoi s'agit-il ? du format papier A4 A3 ??
A te relire
merci pour ta réponse Dan,
pour "feuillles" grandes ou petites, j'entends la mesure en centimètres qui prend ma plage et qui doit être réduite pour être imprimée une page A4 (ou A3, au choix)
mais j'ai essayé toutes les techniques... FitTo page, Zooom, de plus le même problème se reproduis quand je lance les opération d'impression manuellement sans passer par VBA. (voir le résultat des deux PDF joints)
Disons que quand 'ai constaté que cela ne marchait pas correctement, je me suis dit que en connaissant la taille exacte de me plage (en cm) je pouvais facilement calculer le pourcentage de réduction à appliquer pour qu'elle rentre sur un A4 et passer par la méthode .Zoom:= mon pourcentage.
Et la surprise, le zoom ne marche que sur certaines valeurs, pour les autres j'ai des impression (ou PDF) complètement vides... donc par exemple 38% ça passe mais pas 37 ou 35 ou 39 ou 40, sans aucune explication.
J'ai alors essayé de faire cela manuellement et d'enregistrer une macro pour voir ce qu'elle donnait, mais pareil, sans passer par les macro, déjà a l'aperçu de page le problème se manifeste. Un pourcentage de zoom est correctement visualisé, l'autre fait tout disparaitre.
J'envoie les deux PDF générés avec le FitToPge qui ne marche que pour l'un des deux. Pourquoi ?????
Au fait, je voudrais savoir si sur PC se passe de la même façon ou c'est encore un bug destiné aux affreux utilisateurs de Mac. Je travaille dans l'édition, et le Mac est de facto un monopole chez les graphistes, le PC chez les imprimeurs...
Le bon
Le mauvais
Bonsoir
Pour avancer .... pas sur mais bon
Avec 2003 je crée des fichiers PDF comme ceci
1er fichier
With ActiveSheet.PageSetup
.PrintArea = "$B$1:$J$" & DerLg
.PrintTitleRows = "$1:$1"
.PrintTitleColumns = ""
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 500
End Withet le second
With ActiveSheet.PageSetup
.PrintArea = Zone
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 1
End WithAucun soucis
Chaque fois je redéfinis la propriété PrintArea peut-être ......
Uen autre solution deviens imprimeur
Merci Banzai... Déjà essayé. J'ai même osé remettre à zero le (.PrintArea = "") avant de lui donner la valeur de la plage. On ne sait jamais. Rien à faire !
Je suis un peu résigné... ce qui m'embête c'est que le petit logiciel que j'ai conçu marche d'enfer, j'ai du relever pas mal de défis pour lui faire réaliser des dessins techniques dynamiques, chose un peu inhabituelle sur excel. Et là, je me cogne sur un problème inextricables et bête juste à la fin du travail. J'ai la rage !!!!!
re,
En voyant les deux fichiers que tu as postés, une question me vient à l'esprit.. c'est du dessin que tu as fait sur une feuille excel ou tu as utilisé les cellules pour tracer des lignes ???
A te relire
Au fait ce sont des cellules. Quand on change les paramètres, les lignes et colonnes se redimensionnent en cm selon les valeurs calculés sur les matériaux et les typologies de fabrication choisis.
Il s'agit de schémas techniques de fabrication de livres, comme il y a environ 5 ou 6 typologies de façonnage différentes, j'ai préparé six onglets qui se rendent visibles ou non selon les choix, avec un dessin qui s'adapte aux mesures de la couverture et résume les côtes. Le dessins sont toujours les mêmes, les plages aussi, ce n'est que la dimension des cellules qui varie. Les lignes pointillés des côtes par contre, sont des formes qui s'adaptent sur la cellule.
Le 'logiciel' marche bien, malgré une petite imprécision sur la largeur, car comme vous le savais, si l'on peut spécifier la hauteur de ligne avec précision, la largeur de colonne est calculée à partir du nombre de caractères de la feuille "standard" qui rentrent dans une colonne, ils sont ensuite converti en points Pica... Un casse-tête... Mais j'ai trouvé sur le net une astuce qui permet de les formater directement en VBA et en cm avec tout de même une tolérance de 0,2 mm. qui fait partie des limites d'excel.
Cela ne pose pas de problème, car le livre reste tout de même un produit artisanal avec des grandes tolérances, et 1 mm sur la totalité de la largeur d'une couverture ouverte (qui peut mesurer un mètre) ne change pas grand chose, surtout en considérant que la majorité de graphistes n'utilisent que les côtes pour créer leur document, une petite partie importe le pdf dans un calque InDesign ou Photoshop et dessine sa couverture dessus.
Au début donc, je voulais sortir un PDF à échelle 1:1, habitué comme je suis à travailler avec des logiciels de PAO qui créent des PDF non à partir des dimensions de l'imprimante choisie, mais de celles du document de travail. On peut alors créer un PDF de n'importe quel format. Mais je me suis vite rendu compte qu'excel ne permet pas de faire cela, il part de l'impression et non de la taille du doc, de plus ne travaille que sur un nombre limité de formats de page et ne permet pas de redéfinir en interne un format page personnalisé. Je me suis donc résigné à fournir un fichier réduit sur un A4 ou un A3. Pour cette raison je trouvais la méthode .zoom idéale, car non seulement elle permet de remplir ma page PDF, mais fourni à l'utilisateur échelle du dessin en %.
Et là, grande déception, car comme je vous disais, le .zoom sur mac fait des grands caprices. Le FitToPage est fantaisiste... Que faire. C'est très désolant de découvrir cette faille juste à la fin d'un boulot plutôt compliqué.
-- 08 Déc 2010, 12:16 --
EUREKA !
J'ai trouvé la panade.
En effet, pour enregistrer ma feuille excel j'utilasais :
ActiveWorkbook.SaveAs Filename:=NomFeuille, _
FileFormat:=xlPDF, _
publishOption:=xlSheetOr, cette méthode utilise les paramètre d'impression, que comme je le disais, marchent mal.
Si par contre on subtitu à ces instruction le suivantes :
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=NomeFoglio, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=FalseExcel passe par l'exportation en pdf tout en conservant lmes format d'impressio. Résultat, le .zoom marche à n'importe quel valeur !!!!
Merci à vous tous pour votre aide.
Il me reste tout de mème un problème avec :
application.GetSaveAsFilenameCar sur mac on peut pas savoir quelle est la syntaxe pour le .Filtre:=.
Si quequ'un à une idée... ou un exemple pour faire la même chose, soit spécifier un parcour pour l'enrégistrement sans passer par application.GetSaveAsFilename, il est bienvenu.
Merci
Re,
Pour sauver ton document vois ce lien --> https://forum.excel-pratique.com/excel/faie-une-copie-de-sauvegarde-t3325.html.
Cree une SUB et prend le bout de code que j'ai mis le Lun Déc 24, 2007.
Il te restera à définir la variable "Chemin".
Amicalement
Mrci Dan, je vais donneur un coup d’œil et je te tiens au courant