imprimer en paysage une listview

  • Initiateur de la discussion Initiateur de la discussion jeannot68
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

jeannot68

XLDnaute Occasionnel
bonjour a tous

J'ai créer un bouton imprimer sur ma listview pour imprimer les resultats mais j'obtiens une page ou mon tableau est coupé en 2.
Je cherche désespérement a imprimer ma listeview en mode paysage.
merci de votre aide
 

Pièces jointes

Re : imprimer en paysage une listview

Bonjour jeannot,

En faisant une recherche j'ai trouvé ce code. En l'adaptant un peu j'arrive à ceci qui fonctionne.
Code:
Option Explicit ' [url=http://silkyroad.developpez.com/VBA/UserForm/#LIII-E]Utiliser les UserForm en VBA Excel - Club des décideurs et professionnels en Informatique[/url]
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 CommandButton4_Click()
    Dim Ws As Worksheet
    
    UsfListview.Show 0
    
    '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.Name = "Capture"
    Ws.Paste
    
    'impression centrée dans la page
    With Ws.PageSetup
        .CenterHorizontally = True
        .CenterVertically = True
        .PrintArea = "$A$1:$N$34"
        .Zoom = 82
        .Orientation = xlLandscape
    End With
    'Ws.PrintPreview
    Ws.PrintOut
   
Unload UsfListview
Application.DisplayAlerts = False
Sheets("Capture").Delete
Application.DisplayAlerts = True
End Sub

L'USf est imprimé sur une seule feuille.

Bonne journée.
A+
 
Re : imprimer en paysage une listview

Bonjour bqtr,bonjour le forum

merci pour ta réponse par contre je connais pas encore suffisamment VBA pour bien le comprendre. j ai donc copié ce code et je l'ai incorporer a mon bouton imprimer mais ca ne marche pas Que dois je configurer??? ou alors comment copier ce code correctement (tout en un seul bloc ou séparer?)

merci de vos réponses
 
Re : imprimer en paysage une listview

Bonsoir,

Je m'incruste pour un bonsoir tout spécifique à Pierre Olivier... Ca va ? et ta Valérie aussi ? Bisous à tous les deux.

PS : j'ai eu un joli cadeau de notre ami Pierre, il a filmé la pièce et me l'a offerte...
 
Re : imprimer en paysage une listview

Bonsoir Brigitte,

Tous le monde va bien, Valérie à un nouveau bébé en garde une petite
Louane toute neuve (4 mois). Elle est adorable, mignonne comme tout, ça donnerai presque envie d'en faire un autre 😱.
Hier je suis allé faire une petite visite chez tes collègues du CODIS 85 à La Roche sur Yon.

En effet c'est sympa comme cadeau. Pour l'année prochaine on est partant si tu nous préviens assez tôt (toujours à cause de mes horaires de boulot).

Bisous 🙂
 
Re : imprimer en paysage une listview

bonjour bqtr et bonjour Brigitte 🙂

bqtr, sais tu si on peut automatiquement mettre en forme la dimension des colonnes des listviews pour permettre de voir tout le texte a l'ipression sans etre obligé de double cliquer pour ajuster les colonnes??


merci
 
Re : imprimer en paysage une listview

Re,

Non je ne connais pas de façon de faire ça. A part calculer pour chaque feuille la largeur maxi de chaque colonne suceptible d'alimenter la listview et de reporter ces mesures dans le code initialze du USf je ne vois pas.

Désolé
A+
 
Re : imprimer en paysage une listview

Bonsoir,
Même principe mais les données sont transférées dans une feuille temmporaire
Code:
Private Sub CommandButton4_Click()
Dim i As Integer, j As Integer, k As Integer
Sheets.Add
With ActiveSheet
    For i = 1 To ListView1.ColumnHeaders.Count - 1
        .Cells(1, i) = ListView1.ColumnHeaders(i)
    Next
    For j = 1 To ListView1.ListItems.Count
        .Cells(j + 1, 1) = ListView1.ListItems(j).Text
        For k = 1 To ListView1.ColumnHeaders.Count - 1
            .Cells(j + 1, k + 1) = ListView1.ListItems(j).ListSubItems(k).Text
        Next k
    Next j
    .Columns.AutoFit
    .PageSetup.Orientation = xlLandscape
    Me.Hide
    .PrintPreview 'à remplacer par PrintOut pour imprimer
    Me.Show
    Application.DisplayAlerts = False
    .Delete
    Application.DisplayAlerts = True
End With

End Sub
A+
kjin
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
423
W
Réponses
5
Affichages
542
Réponses
3
Affichages
300
Retour