Impression et aperçu avant impression d'une userform

Ritournelle05

XLDnaute Nouveau
Bonjour,
je remercie tout d'abord ceux qui auront le courage de lire ce post.

Je souhaiterai faire un aperçu avant impression d'une userform, j'ai trouvé le code our faire un aperçu d'une feuille excel mais je voudrais l'adapter à un userform. Le voici:

Private Sub CB_apercu_Click()
Application.ScreenUpdating = False
UForm_resultat.Hide
Sheets("Bilan interne des commandes").PrintPreview
Application.ScreenUpdating = True
UForm_resultat.Show
End Sub

J'ai laissé le code comme cela pour le moment pour éviter que mon programme ne beug

Ensuite, j'ai également trouvé le code pour imprimer une userform. J'affiche donc la boîte d'impression mais je ne peux faire aucune modification ou cocher certains critères, ça ne répond pas. Par exemple, je souhaite imprimer ma userform en format paysage et quand je coche cette option dans la boîte d'impression, ma userform est quand même imprimer en portrait. Quand je clique sur le bouton apreçu de cette boîte d'impression, il ne se passe rien.
Voici mon code:
Private Sub CB_imprimer_Click()
Dim P As Byte
P = MsgBox(Range("Résultat!A1"), vbYesNo + vbDefaultButton1)
If P = vbNo Then Exit Sub
Application.Dialogs(xlDialogPrint).Show
With UForm_resultat
.Zoom = 90
End With
UForm_resultat.PrintForm
With UForm_resultat
.Zoom = 100
End With
Unload UForm_resultat

End Sub


Je vous remercie d'avance de votre aide

Bonne soirée
 
C

Compte Supprimé 979

Guest
Re : Impression et aperçu avant impression d'une userform

Bonsoir Ritournelle05

Une solution pour faire ce que tu souhaite
Code:
Option Explicit

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 Ws As Worksheet
    
    'Copie d'écran de la forme active
    keybd_event vbKeySnapshot, 1, 0&, 0&
    DoEvents
    
    'Ajoute une feuille pour coller l'image de la forme
    Set Ws = Sheets.Add
    Ws.Paste
    
    'impression centrée dans la page
    With Ws
        .PageSetup.CenterHorizontally = True
        .PageSetup.CenterVertically = True
        .PrintPreview
    End With
End Sub

A tester ;)

A+
 

YANN-56

XLDnaute Barbatruc
Re : Impression et aperçu avant impression d'une userform

Bonsoir Ritournelle, Bruno:),

Je passais par hasard, et curiosité dans ce Fil, car je soupçonnais une idée à exploiter.

N'est-il pas possible de coller la capture de l'USF sous forme "JPEG" dans un Dossier?

Tu va certainement deviner ce à quoi je veux en venir.:rolleyes:

Amicalement,

Yann
 
C

Compte Supprimé 979

Guest
Re : Impression et aperçu avant impression d'une userform

Salut Yann ;)
Je passais par hasard, et curiosité dans ce Fil, car je soupçonnais une idée à exploiter.
N'est-il pas possible de coller la capture de l'USF sous forme "JPEG" dans un Dossier?
Tu va certainement deviner ce à quoi je veux en venir.:rolleyes:
Mais ouiii, bien sur ... grace à notre ami MichelXLD
VB:
Option Explicit

' code de SilkyRoad alias MichelXLD
' [url=http://excel.developpez.com/faq/?page=PressePapier#ImageClipBoard]FAQ MS-Excel[/url]
Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
    (ByVal hwnd As Long, ByVal lpOperation As String, _
    ByVal lpFile As String, ByVal lpParameters As String, _
    ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long




Sub Image_ClipBoard()
Dim x As Byte
Dim Sh As Shape
Dim monImage As String


'Compte le nombre d'objet initial dans la feuille
x = ActiveSheet.Shapes.Count


Application.ScreenUpdating = False
ActiveSheet.Range("A1").Select
'Colle le contenu du presse papier dans la feuille de calcul
ActiveSheet.Paste


'vérifie si le collage effectué correspond à une image
If x = ActiveSheet.Shapes.Count Then
    Application.ScreenUpdating = True
    MsgBox "Opération annulée"
    Exit Sub
    
    Else
    
    'Récupère la dernière forme de la feuille
    Set Sh = ActiveSheet.Shapes(ActiveSheet.Shapes.Count)
    'Définit le nom et le lieu de stockage de l'image
    monImage = "C:\monImage.jpg"
    
    'Colle l'image dans un graphique
    With ActiveSheet.ChartObjects.Add(0, 0, Sh.Width, Sh.Height).Chart
        .Paste
        'Sauvegarde l'image du graphique au format jpg
        .Export monImage, "JPG"
    End With
    
    'Supprime le graphique et la forme.
    With ActiveSheet
        .ChartObjects(ActiveSheet.ChartObjects.Count).Delete
        .Shapes(ActiveSheet.Shapes.Count).Delete
    End With
    
    Application.ScreenUpdating = True
    
    
    '-------------------------------------------------------------
    'Option pour les utilisateurs de Windows XP :
    'visualisation de l'image créée, avec l'apercu images_telecopies Windows
    'testé avec Excel2002 et WinXP
    ShellExecute 0, "open", "rundll32.exe", _
        "C:\WINDOWS\System32\shimgvw.dll,ImageView_Fullscreen " & monImage, 0, 1
End If
End Sub

A+
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 165
Messages
2 085 880
Membres
103 009
dernier inscrit
dede972