Imprimer le contenu d'une listview

'
'
Sub Lancer_impression(ByVal Listview As ListView)

        Dim S1 As String
        Dim FNxls As String
        Dim iCol As Integer
        Dim oXL As Object
        Dim oBook As Object
        Dim oSheet As Object
        Dim monProcess As New Process()

        S1 =Application.StartupPath    ' Retourne le chemin d'accèsde l'application
        If Mid(S1, Len(S1) - 1) <> "\" Then S1 = S1 & "\"
        FNxls = S1 & "Excel.xls"

        ' Creer l'application XL
        oXL = CreateObject("Excel.Application")
        oBook = oXL.Workbooks.Add ' Ajout d'un classeur
        oSheet = oBook.Worksheets(1)    ' Ajout d'une feuille

        With oSheet
            
             For i Asinteger = 0 To ListView.Columns.Count - 1 ' Permet d'ajouter les nomsdes colonnes de la listview passer en paramètre dans le fichier XL
                .Cells(1, i+1) = ListView.Columns(i).Text
            Next

            'Boucle ajoutant tout les items contenus dans la ListView dans lefichier excel
            For iCol = 0 To ListView.Items.Count - 1
                lvItem = ListView.Items(iCol)
               .Cells(iCol + 3, 1) = lvItem.SubItems(0).Text
               .Cells(iCol + 3, 2) = lvItem.SubItems(1).Text
               .Cells(iCol + 3, 3) = lvItem.SubItems(2).Text
               .Cells(iCol + 3, 4) = lvItem.SubItems(3).Text
               .Cells(iCol + 3, 4).HorizontalAlignment = 3 ' Permet de centrer dans lacellule ( 2 : à gauche      3 : centrer     4 : à droite )
               ' Ligne précédente peut être supprimé si pas de formatage voulu pourles cellules
               .Cells(iCol + 3, 5) = lvItem.SubItems(4).Text
               .Cells(iCol + 3, 5).HorizontalAlignment = 3
               .Cells(iCol + 3, 6) = lvItem.SubItems(5).Text
               .Cells(iCol + 3, 6).HorizontalAlignment = 3
               .Cells(iCol + 3, 7) = lvItem.SubItems(6).Text
               .Cells(iCol + 3, 7).HorizontalAlignment = 3
            Next
        End With

        ' 1° Ligne : Titres en Gras
        oSheet.Rows(1).Font.Bold = True

        ' Largeur des colonnes
        oSheet.Columns("A:A").ColumnWidth = 33.71   ' Colonne 1
        oSheet.Columns("B:B").ColumnWidth = 33.71   ' Colonne 2

        ' Paramétrer les marges de la feuille
        oSheet.PageSetup.LeftMargin= 0.393700787401575     ' Marge de gauche
        oSheet.PageSetup.RightMargin = 0.393700787401575    ' Marge de droite
        oSheet.PageSetup.TopMargin =0.393700787401575      ' Marge du haut
        oSheet.PageSetup.BottomMargin = 0.393700787401575   ' Marge du bas

        ' Afficher le quadrillage sur la feuille
        oSheet.PageSetup.PrintGridlines = True

        ' Afficher le tableau de manière centrer horizontalement sur la feuille
        oSheet.PageSetup.CenterHorizontally = True

        ' Paramétrer la feuille en mode Paysage        oSheet.PageSetup.Orientation 2  ' ( 1 : Portrait )

        oXL.ActiveSheet.printout() ' Lancer l'impression
        oXL.Quit() ' Ferme le processus

    End Sub
'
'

Ce document intitulé « Imprimer le contenu d'une listview » issu de CodeS SourceS (codes-sources.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Rejoignez-nous