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
| Sub Importer_csv()
On Error Resume Next
Const Separateur = "," 'type de séparateur
Dim Tableau() As String 'Tableau pour récupérer les valeurs entre séparateur du fichier csv
Dim i As Integer, Cmpt As Integer 'Pour les compteurs des boucles qui vont faire les lignes et les colonnes des cellules du fichiers Excel
Dim LigneCSV As String 'Pour enregistrer les lignes CSV
Dim Fichier As Variant 'Emplacement du fichier CSV à importer
'Sheets("Feuil1").Cells.Clear 'Effacer la feuille Feuil1 avant l'importation du CSV
Sheets("Feuil1").Cells.Clear
ChDir ThisWorkbook.Path & "\"
Fichier = Application.GetOpenFilename("Fichier CSV (*.csv), *.csv")
'Format des cellules impératif d'avoir du texte sur la colonne 2
'Format standard ensuite car sinon les qtés de manière aléatoire peuvent être au format date
'Worksheets("Feuil1").Cells.Select
'Worksheets("Feuil1").Selection.NumberFormat = "General"
'Worksheets("Feuil1").Columns("B:B").Select
'Worksheets("Feuil1").Selection.NumberFormat = "@"
If Fichier <> False Then
Application.ScreenUpdating = False
Open Fichier For Input As #1 'Ouverture du fichier CSV à la ligne #1
Cmpt = 0 'l'écriture de l'importation commence à la ligne cmpt + 1
Do While Not EOF(1) 'Faire tant que je ne suis pas à la dernière ligne
Line Input #1, LigneCSV 'Affectation de la ligne CSV à LigneCSV
Tableau = Split(LigneCSV, Separateur) 'Ecriture du CSV dans le tableau
Cmpt = Cmpt + 1
For i = 0 To UBound(Tableau)
If Cmpt = 1 Then
Sheets("Feuil1").Cells(Cmpt, i + 2) = Format(Tableau(i), "@") 'Ecriture du CVS dans la feuille Excel en démarant à ligne 1 et colonne 2
ElseIf IsNumeric(Tableau(i)) Then
Sheets("Feuil1").Cells(Cmpt, i + 2) = CInt(Tableau(i))
Sheets("Feuil1").Cells(Cmpt, i + 2).NumberFormat = "general"
ElseIf IsDate(Tableau(i)) Then
Sheets("Feuil1").Cells(Cmpt, i + 2) = DateValue(Tableau(i))
Else
Sheets("Feuil1").Cells(Cmpt, i + 2) = Format(Tableau(i), "@")
End If
Next i
Loop
Close #1
Application.ScreenUpdating = True
Else
Exit Sub
End If
'Colonne largeur automatique sur toutes les colonnes
Cells.EntireColumn.AutoFit
'Dernière ligne de la colonne 2 donc "B"
With ThisWorkbook.Worksheets("Feuil1")
DernièreLigne = .Cells(.Rows.Count, 2).End(xlUp).Row
End With
'Insertion de lignes
Worksheets("Feuil1").Select
Rows("1:5").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
'Boucle pour recopier le symbole dans la colonne 1
For j = 1 To DernièreLigne - 1
'Sheets("Feuil1").Cells(j * 12, 1) = Sheets("Feuil1").Cells(j * 12, 2)
Sheets("Feuil1").Cells(j * 12 + 1, 1) = Sheets("Feuil1").Cells(j * 12, 2)
Sheets("Feuil1").Cells(j * 12 + 2, 1) = Sheets("Feuil1").Cells(j * 12, 2)
Sheets("Feuil1").Cells(j * 12 + 3, 1) = Sheets("Feuil1").Cells(j * 12, 2)
Sheets("Feuil1").Cells(j * 12 + 4, 1) = Sheets("Feuil1").Cells(j * 12, 2)
Sheets("Feuil1").Cells(j * 12 + 5, 1) = Sheets("Feuil1").Cells(j * 12, 2)
Sheets("Feuil1").Cells(j * 12 + 6, 1) = Sheets("Feuil1").Cells(j * 12, 2)
Sheets("Feuil1").Cells(j * 12 + 7, 1) = Sheets("Feuil1").Cells(j * 12, 2)
Sheets("Feuil1").Cells(j * 12 + 8, 1) = Sheets("Feuil1").Cells(j * 12, 2)
Sheets("Feuil1").Cells(j * 12 + 9, 1) = Sheets("Feuil1").Cells(j * 12, 2)
Sheets("Feuil1").Cells(j * 12 + 10, 1) = Sheets("Feuil1").Cells(j * 12, 2)
Sheets("Feuil1").Cells(j * 12 + 11, 1) = Sheets("Feuil1").Cells(j * 12, 2)
Sheets("Feuil1").Cells(j * 12, 2).ClearContents
'Sheets("Feuil1").Cells(j * 12, 1).ClearContents
Next j
'Suppression des lignes inserées
Worksheets("Feuil1").Select
Rows("1:5").Select
Selection.Delete Shift:=xlUp
End Sub |