Printform mode paysage

Résolu
Bonjour,

j'ai un petit soucis je souhaite imprimer une interface en mode paysage.
j'ai tenté les codes suivant mais cela ne fonctionne pas : je dirai même que ca ne me fait aps grand chose :

Private Sub keybd_event(ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, _
ByVal dwExtraInfo As Long)
End Sub

Private Sub CB_impform_Click()
'BackColor = &H80000005
'PrintForm
'BackColor = &H8000000C

' Printer.Orientation = vbPRORLandscape 'Mettre en paysage
'Me.PrintForm ' Impression
'Printer.EndDoc

'Printer.Orientation = 1 'Mettre en paysage
'Me.PrintForm ' Impression
'Printer.EndDoc

'BackColor = &H8000000C

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
Synthese.Hide
.PrintPreview
.Shapes(1).Delete
.Visible = xlSheetHidden
'userform à nouveau visile
Me.Show
End With
Application.ScreenUpdating = True

End Sub

merci pour votre aide
Configuration: Windows XP
Internet Explorer 6.0

10 réponses

  1. Bonjour,je travaille avec vb.net2008. J'ai un petit probleme je veux imprimer en mode paysage en utilisant printform. Quelqu'un peut m'aider.
    1. Contributeur
      Bonjour,
      je n'ai pas encore eu l'occasion d'employer 'Printer.Orientation = 1 ' Mettre en paysage en VBA, mais je sais qu'en VB6 c'est un bug et que ca ne fonctionne pas, probable le même en VBA.
      Mettre l'imprimante en paysage avec la config imprimante avant d'envoyer la macro.

      A+
      1. tout d'abord merci d'avoir répondu.

        ensuite, je sais pas si ca vient de là mais j'ai l'impression que le printer est pas trop apprécié. faut il une bibliothèque spécifique (sur Excel) pour qu'il soit reconnu ?
      2. Contributeur
        @niny@Fait une macto auto en sélectionnant ta feuille et tu va voir que le Printer fonctionne, sauf Orientation.
    2. Contributeur
      En relisant ta question, voir dans l'aide..
      L'imprimante utilisée par la méthode PrintForm est déterminée par les paramètres du Panneau de configuration du système d'exploitation.

      Donc pas moyen de mettre en paysage à partir de VB
      A+
      1. Bonjour niny@ et lermite ;o)

        En fouillant sur le net, j'ai trouvé ça : Spécifier l'orientation et le % pour des feuilles différentes , ça peut, peut être t'aider.

        ;o)
        1. bon ca a marché avec printform je sais aps comment mais now oui!
          merci à tous
          1. Moi j'ai tester pour un de mes programme avec me.printform
            j'ai mis : Printer.Orientation = 2
            Et ça fonctionne très bien ;)

            Par contre, j'essaye de décaler l'image printform sur la droite.
            mais je n'y arrive pas :s
            1. Contributeur
              Pour centrer sur la feuille
                      ActiveSheet.PageSetup.CenterHorizontally = True
                      ActiveSheet.PageSetup.CenterVertically = True

              Pour décaler horizontalement il faut jouer avec les deux commandes..
                      ActiveSheet.PageSetup.LeftMargin = Application.InchesToPoints(0.78740157480315)
                      ActiveSheet.PageSetup.RightMargin = Application.InchesToPoints(0.78740157480315)


              C'était pas difficile avec l'éditeur de macro !! prochaine fois essaye de le faire toi-même.
              A+
              1. je l'ai aps fait avec mes ca marche ! et pour ton info je cherche j'attend pas que la réponse me tombe du ciel

                merci quand même pour ton aide
                1. Contributeur
                  Tu a mal compris ma remarque, ce n'était pas un reproche mais une info.
                  Ceci dit, j'ai pas compris ta réponse, qui n'est pas en français,
                  je l'ai aps fait avec mes ca marche
                  ça veux dire quoi ? :D
                  A+
                  1. je suis désolée ! c'était pas un bon jour je crois !
                    c'est vrai que j'ai parlé en pti chinois !

                    finallement j'ai juste mis le printform et ca a marché. c'est à n'y rien comprendre !