1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
| Private Sub UserForm_Initialize()
'Déclaration des variables
Dim xlApp As Excel.Application 'Application Excel pour ouvrir un fichier XLS
Dim xlWb As Excel.Workbook 'Classeur Excel
Dim xlWs As Excel.Worksheet 'Feuille du classeur
Dim intL As Integer 'Récupération de l'index de la ligne
Dim tblListe() As String 'tableau pour le remplissage de la liste.
'Affectation des données aux objets
'Affectation de Excel en créant un nouvelle instance
Set xlApp = New Excel.Application
'Ouverture du fichier
Set xlWb = xlApp.Workbooks.Open("D:\Documentation\Admnistratif\Bordereau\bordereau_adresse.xls")
'Utilisation de la première feuille
Set xlWs = xlWb.Worksheets(1)
'Boucle pour déterminer le nombre de lignes contenant des données dans le fichier Excel
intL = 1
Do Until Len(xlWs.Range(Cells(intL, 1), Cells(intL, 1))) = 0
intL = intL + 1
Loop
'Redimensionnement du tableau en fonction du nombre de lignes remplies dans le feuille de données
ReDim tblListe(intL, 6)
'tblListe(0, 0) = "Nom"
'tblListe(0, 1) = "Adresse1"
'tblListe(0, 2) = "Adresse2"
'tblListe(0, 3) = "Adresse3"
'tblListe(0, 4) = "CP"
'tblListe(0, 4) = "Ville"
'Boucle sur les cellules de la feuille Excel
intL = 1
Do Until Len(xlWs.Range(Cells(intL, 1), Cells(intL, 1))) = 0
'Index de la ligne
tblListe(intL, 0) = intL
'Contenu de la première colonne de la feuille de données
tblListe(intL, 1) = xlWs.Range(Cells(intL, 1), Cells(intL, 1))
'Contenu de la colonne 2 de la feuille de données
tblListe(intL, 2) = xlWs.Range(Cells(intL, 2), Cells(intL, 2))
'Contenu de la colonne 2 de la feuille de données
tblListe(intL, 3) = xlWs.Range(Cells(intL, 3), Cells(intL, 3))
'Contenu de la colonne 4 de la feuille de données
tblListe(intL, 4) = xlWs.Range(Cells(intL, 4), Cells(intL, 4))
'Contenu de la colonne 4 de la feuille de données
tblListe(intL, 5) = xlWs.Range(Cells(intL, 5), Cells(intL, 5))
'Contenu de la colonne 2 de la feuille de données
tblListe(intL, 6) = xlWs.Range(Cells(intL, 6), Cells(intL, 6))
'Debug.Print intL & " --- " & & " --- " &
intL = intL + 1
Loop
'transfert des données vers la liste du UserForm
Me.lstChoix.List = tblListe
'Fermeture et libération des objets
'Fermeture du classeur
xlWb.Close
'Libération de l'objet
Set xlWb = Nothing
'Fermeture d'Excel
xlApp.Quit
'Liberation
Set xlApp = Nothing
End Sub |
Partager