[Résolu][Calc] Importer un fichier CSV
Publié : 26 sept. 2007 14:30
Bonjour à tous,
je cherche à importer un fichier csv dans un fichier calc ( je précise bien importer via une macro, et non "ouvrir" un fichier )
le but est de cliquer sur un bouton, que ca ouvre l'explorateur pour aller chercher le fichier à la main, et que ca l'importe dans la premiere feuille du classeur.
J'ai déja fait cette macro sous vba ( avec beaucoup de mal ) mais je n'arrive pas à l'adapter
Mon probleme vient de plusieurs choses : quel équivalent pour
Le reste du code ne fonctionne pas non plus pourtant quand je regarde l'aide d'openoffice les fonctions sont sensiblement identiques.
Je ne m'en sors pas et j'aimerai bien un coup de main
Merci par avance.
je cherche à importer un fichier csv dans un fichier calc ( je précise bien importer via une macro, et non "ouvrir" un fichier )
le but est de cliquer sur un bouton, que ca ouvre l'explorateur pour aller chercher le fichier à la main, et que ca l'importe dans la premiere feuille du classeur.
J'ai déja fait cette macro sous vba ( avec beaucoup de mal ) mais je n'arrive pas à l'adapter
Code : Tout sélectionner
Public Sub Ouvrir_csv()
Dim Fichier As Variant
ChDir ThisWorkbook.Path
Fichier = Application.GetOpenFilename("Fichier CSV (*.csv), *.csv")
If Fichier <> False Then Importer_fichier Fichier
End Sub
Public Sub Importer_fichier(ByVal NomFichier As String)
Dim chaine As String
Dim Ar() As String
Dim i As Long
Dim iRow As Long, iCol As Long
Dim NumFichier As Integer
Dim Sep As String * 1
Dim Debut As Long, Fin As Long
Sheets("Donnees").Select
Sheets("Donnees").Unprotect
Sheets("Donnees").Cells.Delete
Debut = GetTickCount
Sep = ";"
Cells.Clear
Application.ScreenUpdating = False
Close
NumFichier = FreeFile
iRow = 0
Open NomFichier For Input As #NumFichier
Do While Not EOF(NumFichier)
iCol = 1: iRow = iRow + 1
Line Input #NumFichier, chaine
Split Ar(), chaine, Sep
For i = LBound(Ar) To UBound(Ar)
Sheets("Donnees").Cells(iRow, iCol) = Ar(i)
iCol = iCol + 1
Next i
Loop
Close #NumFichier
Fin = GetTickCount
Application.StatusBar = Format((Fin - Debut) / 1000, "0.00")
Application.ScreenUpdating = True
Sheets("Donnees").Protect
End SubCode : Tout sélectionner
ChDir ThisWorkbook.Path
Fichier = Application.GetOpenFilename("Fichier CSV (*.csv), *.csv")Je ne m'en sors pas et j'aimerai bien un coup de main
Merci par avance.