Export d'une listview vers excel

1/5 (11 avis)

Snippet vu 12 996 fois - Téléchargée 44 fois

Contenu du snippet

Cette procédure permet d'exporter le contenu d'une listview vers un Excel. Ne pas oublier de rajouter le composant Microsoft Excel !

Source / Exemple :


Public Sub Export_Excel(My_Listview As Listview, Nbr_Lignes As Integer, Nbr_Colonnes As Integer)
    Dim Appli As New Excel.Application
    Dim Ligne As String
    Dim LigneExcel As Integer
    Dim ColExcel As Integer
    Dim compt As Integer
    Dim comptcol As Integer
    Dim fso As New FileSystemObject
    
    'Rendre visible EXCEL
    Appli.Visible = True
    

    'Créer un nouveau classeur EXCEL initialisé à la ligne 1
    Appli.Workbooks.Add.Activate
    DoEvents
    LigneExcel = 1
    ColExcel = 1

    'MsgBox Appli.Workbooks.Count
    
    ' Affecter les données de la listbox dans les cellules de la feuille
    With ActiveWorkbook.Worksheets("Feuil1")
    
    
    'Insere le nom des entetes de colonnes
    For comptcol = 0 To Nbr_Colonnes - 1
        .Cells(LigneExcel, ColExcel) = My_Listview.ColumnHeaders(comptcol + 1)
        ColExcel = ColExcel + 1
    Next comptcol
    
    ColExcel = 1
    LigneExcel = LigneExcel + 1
    
    'Inscrire le contenu d'une listview dans la feuille 1 d'un classeur EXCEL
    For compt = 0 To My_Listview.ListItems.Count - 1
        
        'On boucle sur les colonnes
        For comptcol = 0 To Nbr_Colonnes - 1
                If comptcol = 0 Then
                    .Cells(LigneExcel, ColExcel) = My_Listview.ListItems.item(LigneExcel - 1)
                Else
                    .Cells(LigneExcel, ColExcel) = My_Listview.ListItems.item(LigneExcel - 1).ListSubItems(comptcol)
                End If
        ColExcel = ColExcel + 1
        Next comptcol
    
    
    ColExcel = 1
    LigneExcel = LigneExcel + 1
    Next compt
    
    End With
    
    'Pour mettre l'entête des colonnes en gras
    ActiveWorkbook.Worksheets("Feuil1").Range("A1:" & Chr(65 + Nbr_Colonnes - 1) & "1").Font.Bold = True
    'Pour ajuster les colonnes
    ActiveWorkbook.Worksheets("Feuil1").Range("A:" & Chr(65 + Nbr_Colonnes - 1)).Columns.AutoFit
    
End Sub

A voir également

Ajouter un commentaire Commentaires
badap Messages postés 2 Date d'inscription dimanche 6 mars 2011 Statut Membre Dernière intervention 11 mars 2011
11 mars 2011 à 20:15
je vais esaye
zourajo Messages postés 6 Date d'inscription samedi 20 février 2010 Statut Membre Dernière intervention 10 mai 2012
14 févr. 2011 à 16:21
merci mais il m'a dit que Excel.Application
n'est pas defini et FileSystemObject aussi!!!pourquoi ainsi que j'ai l'exel sur mon pc!!
merci
cs_Red_Dragon Messages postés 41 Date d'inscription vendredi 9 juin 2006 Statut Membre Dernière intervention 27 septembre 2006
16 janv. 2007 à 15:34
> GREDELISSE : pour éviter ton problème je te conseille de remplacer toutes les occurences de "ActiveWorkbook" par "Appli.ActiveWorkbook", c'est à dire aux lignes 23, 56 et 58.
La nature n'aime pas le vide :)
Utilisateur anonyme
15 févr. 2005 à 18:30
le code d'export vers excel 2003 fontionne 1 fois puis il ne fonctione plus !!!!
Ken2K Messages postés 19 Date d'inscription vendredi 18 janvier 2002 Statut Membre Dernière intervention 26 novembre 2004
21 juil. 2004 à 11:59
par contre si marche uniquement, quand le Nbr_colonnes < 26 sinon sa bug dans la derniere partie Range.....

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.