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
| Sub test()
Dim cheminFichier As Variant
Dim wb As Workbook
Dim TabData(1 To 4) As Variant
Dim xlapp As Excel.Application
Dim derniereLigne As Integer
Dim mois As Integer
Dim annee As Integer
cheminFichier = Application.GetOpenFilename(" Fichiers CSV (*.csv), *.csv")
If cheminFichier = False Then GoTo fin
mois = Mid(cheminFichier, Len(cheminFichier) - 7, 2)
annee = Mid(cheminFichier, Len(cheminFichier) - 5, 2)
Set xlapp = CreateObject("Excel.Application")
xlapp.Visible = False
Set wb = xlapp.Workbooks.Open(cheminFichier, , True, 4, , , , , , , , , , True)
derniereLigne = wb.ActiveSheet.Cells(Rows.Count, 1).End(xlUp).row
Application.Calculation = XlCalculation.xlCalculationManual
For i = 2 To derniereLigne
Erase TabData
TabData(1) = mois
TabData(2) = annee
TabData(3) = wb.ActiveSheet.Cells(i, 1)
TabData(4) = wb.ActiveSheet.Cells(i, 2)
ajoutLigne TabData(), "BDD_stock", Feuil2
Next i
Application.Calculation = XlCalculation.xlCalculationAutomatic
wb.Close False
xlapp.Quit
fin:
End Sub
Function ajoutLigne(CellV(), NomTab As String, feuille As Worksheet)
Dim row As ListRow
Dim table As ListObject
Set table = feuille.ListObjects(NomTab)
Set row = table.ListRows.Add()
For i = 1 To UBound(CellV)
row.Range.Cells(i).Value = CellV(i)
Next i
End Function |
Partager