Lecture de fichiers CSV via VBA

  • Initiateur de la discussion basto
  • Date de début
B

basto

Guest
Bonjour,

je possède un fichier CSV dont les champs sont séparés par des ;

Lorsque je charge le fichier directement (avec ouvrir, ....) excel comprend et décompose tout seul les lignes.

Si j'utilise la méthode : Workbooks.Open ou Workbooks.OpenText le résultat est incohérent.

Il ne comprend pas le fichier et me traduit chaque ligne en plusieurs lignes dans Excel (J'ai des lignes dans le fichier CSV avec des caractères de saut de ligne).

Que faut il faire pour retrouver le focntionnement par défaut d'Excel? Comment peut on préciser le converter dans la méthode Workbooks.Open?

Pour info, si j'enregistre les actions faites manuellement alors il les traduit en Workbooks.Open.

Merci d'avance pour l'aide apportée.
 

ljoue

XLDnaute Junior
Salut,
voici un code qui permet d'ouvrir un CSV

'mcOuvreCsv
'
Sub mcOuvreCsv()
Dim Cdlg As New clsCommonDialogAPI
Dim lngFormHwnd As Long
Dim lngAppInstance As Long
Dim strInitDir As String
Dim strFileFilter As String
Dim strDialogName As String
Dim sPath As String
Dim lngResult As Long
Dim sLigne As String
Dim sTableau() As String
Dim objF As Worksheet
Dim R As Range
Dim fCond As FormatCondition
Dim i As Integer
Dim j As Integer

strInitDir = 'C:\\'

strFileFilter = 'Fichier CSV (*.csv)' & _
Chr(0) & '*.csv' & Chr(0)

strDialogName = 'Importer un fichier CSV'

lngResult = Cdlg.OpenFileDialog(lngFormHwnd, _
lngAppInstance, strInitDir, strFileFilter, _
strDialogName)

If Cdlg.GetStatus = True Then
sPath = Cdlg.GetName

Set objF = ThisWorkbook.ActiveSheet

Open sPath For Input As #1

i = 0

Do While Not EOF(1)
Line Input #1, sLigne
sTableau = Split(sLigne, ';')
i = i + 1 'nouvelle ligne

For j = 0 To UBound(sTableau)

objF.Cells(i, j + 1).Value = _
Replace(sTableau(j), '''', '')

If InStr(sTableau(j), '''') > 0 Then
Set R = objF.Cells(i, j + 1)
R.NumberFormat = '@'
Else

End If
Next

Loop

Close #1
Set Cdlg = Nothing
Set objF = Nothing
Set R = Nothing
Set fCond = Nothing

Else
MsgBox 'Aucun fichier sélectionné...'
End If

End Sub


En rouge champs à adapter

@+

Message édité par: ljoue, à: 23/03/2006 17:01
 

Discussions similaires

Statistiques des forums

Discussions
312 493
Messages
2 088 955
Membres
103 989
dernier inscrit
jralonso