![]() |
|
Forum
|
|
|
#1 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: février 2005
Localisation: bALMA
Version Excel : Excel XP (PC)
Messages: 300
|
BONSOIR LE FORUM
J'ai recherché sur les archives de ce forum , une maniere d'imprimer un Userform en mode paysage. J'ai trouvé : Application.Dialogs(xlDialogPrint).Show Ca m'imprime la feuille excel en mode paysage mais le Userform en mode portrait . Comment faire pour imprimer un Userform en mode Paysage ???? sI QUELQU'UN à UNE RéPONSE , JE LA TESTERAIS DE SUITE ; mERCI |
|
|
|
| ANNONCES | |||
|
|
|
|
#2 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: février 2005
Messages: 3 691
|
bonjour
tu peux tester Private Declare Sub keybd_event Lib 'user32' ( _ ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, _ ByVal dwExtraInfo As Long) Private Sub CommandButton1_Click() Dim Wrd As Object Dim WrdDoc As Object keybd_event vbKeySnapshot, 1, 0&, 0& DoEvents Set Wrd = CreateObject('Word.Application') On Error Resume Next Set WrdDoc = Wrd.Documents.Add Wrd.Visible = False WrdDoc.PageSetup.Orientation = wdOrientLandscape Wrd.Selection.PasteSpecial WrdDoc.PrintOut WrdDoc.Close False WrdDoc.Quit End Sub bonne journée MichelXld |
|
|
|
|
|
#3 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: février 2005
Localisation: bALMA
Version Excel : Excel XP (PC)
Messages: 300
|
Bonjour le forum
Re MichelXld Je vois que tu es sur tous les fronts et j'ai de la chance car tu es 2 fois sur le mien ce matin . Ta proposition comme d'habitude fonctionne à merveille , j'imprime bien mon Userform en entier . Je vois que tu passes par un imprime ecran . Cependant mon format de sortie est toujours en mode portrait , ce qui reduit l'affichage de mon USF. comment obliger l'imprimante à sortir ce document en paysage ?? Merci |
|
|
|
|
|
#4 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: février 2005
Messages: 3 691
|
rebonjour Carlos
oouuppss ,toutes mes excuses : une petite erreur de recopie de map art tu peux refaire un essai en remplaçant la ligne WrdDoc.PageSetup.Orientation = wdOrientLandscape par WrdDoc.PageSetup.Orientation = 1 bonne journée MichelXld |
|
|
|
|
|
#5 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: février 2005
Localisation: bALMA
Version Excel : Excel XP (PC)
Messages: 300
|
Re MichelXld
merci beaucoup pour ton correctif car moi jai fait beaucoup d'essais infructueux de mon coté Excellente journée Carlos |
|
|
|
|
|
#6 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: février 2005
Localisation: bALMA
Version Excel : Excel XP (PC)
Messages: 300
|
Bonne apres midi le forum
Bonne apres midi MichelXld Je sais ,j'abuse mais travailler sur Word à partir d'excel , c'est pas ma tasse de thé Bref je tente une derniere question sur ce sujet: Comment redimenssionner mon image dans word pour qu'elle prenne toute la page en mode paysage.? J'ai éssayé ca mais sans résultat : WrdDoc.Shapes('Picture 2').Select Selection.ShapeRange.ScaleWidth 1.31, msoFalse, msoScaleFromTopLeft Selection.ShapeRange.ScaleHeight 1.31, msoFalse, msoScaleFromTopLeft ActiveWindow.ActivePane.VerticalPercentScrolled = 50 Merci Carlos |
|
|
|
|
|
#7 (permalink) |
|
XLDnaute Impliqué
Date d'inscription: février 2005
Version Excel : Excel 2003 (PC)
Messages: 746
|
Intéressant Michel, je connaissais kbd_event, mais je me demandais ce que donnerait ce vbkeySnapshot et j'aurais dit a priori qu'il copierait tout l'écran, ce qui n'aurait guère été intéressant. Je garderai cette astuce
Mais comme Carlos, ça ne m'intéressait guère de passer par Word, aussi j'ai un peu simplifié ta macro en passant simplement par une feuille Excel (laquelle peut être masquée au demeurant). Avantage, outre qu'on n'a plus à piloter word, c'est qu'on peut très facilement définir une fois pour toutes les propriétés de cette feuille (Orientation, définition des marges, centrer horizontalement/verticalement etc.) Private Sub CommandButton2_Click() keybd_event vbKeySnapshot, 1, 0&, 0& DoEvents Application.ScreenUpdating = False With Feuil3 'le codename de la feuille masque .Paste .Range('A1') 'si la feuille était masquée .Visible = xlSheetVisible .PrintOut .Shapes(1).Delete .Visible = xlSheetHidden End With Application.ScreenUpdating = True End Sub On peut aussi lancer un printpreview, mais alors il ne faut pas oublier de masquer d'abord le userform par un me.Hide, sinon on plante irrémédiablement Excel ! |
|
|
|
|
|
#8 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: février 2005
Localisation: bALMA
Version Excel : Excel XP (PC)
Messages: 300
|
Salut Ti_
Re MichelXld Il est tres chaud ton code Ti_ , j'ai du faire quelques efforts de reflexion pour retrouver mes feuilles cachées et mes shapes() mal numerotés ?? Bref tout mon chez moi est redevenu normal et je crois comprendre comment tu as fait . Je test maintenant le preview afin de faire entrer tout cela sur une seule feuille . Merci à tous les 2 pour ces informations tres tres utiles Carlos |
|
|
|
|
|
#9 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: février 2005
Localisation: bALMA
Version Excel : Excel XP (PC)
Messages: 300
|
RE
A priori je ne preview que la feuille mais pas le userform . Cependant lorsque j'imprime , c'est bien le userform qui s'imprime.Je pense qu'il s'intercalle entre la feuille et le lancement de l'impression .. Ma deduction est certainement grossiere mais j'en ai pas d'autre ? Merci |
|
|
|
|
|
#10 (permalink) |
|
XLDnaute Impliqué
Date d'inscription: février 2005
Version Excel : Excel 2003 (PC)
Messages: 746
|
La macros suivante permet de voir l'image du formulaire en printpreview :
Private Sub CommandButton2_Click() Dim Sh As Shape keybd_event vbKeySnapshot, 1, 0&, 0& DoEvents Application.ScreenUpdating = False With Feuil3 'par précaution, pour faire le ménage For Each Sh In .Shapes Sh.Delete Next Sh .Paste .Range('A1') 'si la feuille était masquée .Visible = xlSheetVisible 'obligatoire avant un PrintPreview Me.Hide .PrintPreview .Shapes(1).Delete .Visible = xlSheetHidden 'userform à nouveau visile Me.Show End With Application.ScreenUpdating = True End Sub Au passage, elle nettoie la feuille des images précédentes qui n'auraient pas été effacées. En fait, à mon sens le printpreview n'est utile qu'une seule fois, pour définir les options d'impression de ta feuille, en particulier joue sur le zoom pour faire coincider au mieux ton userform aux dimensions de la page imprimée. Ensuite, une fois que c'est fait, tu n'auras plus à y retoucher, et tu pourras alors passer directement au PrintOut (sans avoir à masquer puis réafficher le userform, ce qui est plus simple). |
|
|
|
|
|
#11 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: février 2005
Localisation: bALMA
Version Excel : Excel XP (PC)
Messages: 300
|
Re
C'est génial de pouvoir réaliser tout ca et d'avancer sans etre bloquer pendant de longues periodes sur un probleme . Merci beaucoup pour votre aide et votre sens de la pédagogie. Carlos |
|
|
|
|
|
#12 (permalink) |
|
XLDnaute Nouveau
Date d'inscription: juillet 2006
Messages: 1
|
Bonsoir,
j'ai utilisé le code proposé par TI qui fonctionne bien ![]() Par contre, le userform s'imprime mais avec une autre feuille en arrière plan ... Pourquoi ? Merci d'avance ![]() Dernière modification par tweetyjam ; 10/07/2006 à 18h59. |
|
|
|
|
|
#13 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: février 2005
Messages: 3 691
|
bonsoir
apparament , il y a eu un probleme de conversion de certains caractères lors de la migration vers le nouveau forum... tu peux refaire un essai en remplaçant les apostrophes ' par des guillemets " dans ta procédure bonne soiree MichelXld |
|
|
|
|
|
#14 (permalink) |
|
XLDnaute Accro
Date d'inscription: février 2006
Version Excel : Excel 2003 (PC)
Messages: 1 934
|
Bonsoir à tous,
je viens de testé les programmes de MichelXld et TI ils sont vraiment SUPER merci à vous de me faire évoluer ou de nous faire évoluer. Bruno |
|
|
|
| ANNONCES | |
![]() |
| Liens sociaux |
| Outils de la discussion | |
|
|