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
| Option Explicit
Sub SelectionCsv()
Dim Fichier As Variant
ChDir ThisWorkbook.Path
Fichier = Application.GetOpenFilename("Fichier CSV (*.csv), *.csv")
If Fichier <> False Then Lire Fichier
End Sub
Private Sub Lire(ByVal NomFichier As String)
Dim sChaine As String
Dim Ar() As String
Dim i As Long
Dim iRow As Long, iCol As Long
Dim NumFichier As Integer
Const sSeparateur As String * 1 = ","
Feuil1.Cells.Clear
Application.ScreenUpdating = False
NumFichier = FreeFile
iRow = 0
Open NomFichier For Input As #NumFichier
Do While Not EOF(NumFichier)
iCol = 1
iRow = iRow + 1
Line Input #NumFichier, sChaine
Split97 Ar, sChaine, sSeparateur
For i = LBound(Ar) To UBound(Ar)
Feuil1.Cells(iRow, iCol) = Ar(i)
iCol = iCol + 1
Next i
Loop
Close #NumFichier
Application.ScreenUpdating = True
End Sub
Private Sub Split97(ByRef Ar() As String, s As String, sSep As String)
Dim Pos As Long
Dim i As Long, j As Long
i = 1: j = 0
Do While i <= Len(s)
If Mid$(s, i, 1) = sSep Then
ReDim Preserve Ar(j)
Pos = InStr(s, sSep)
Ar(j) = Left$(s, Pos - 1)
s = Right$(s, Len(s) - Pos)
j = j + 1: i = 0
End If
i = i + 1
Loop
ReDim Preserve Ar(j)
Ar(j) = s
End Sub |
Partager