Problème intégration fichier .csv avec macro

Bonjour à tous,

Je vous sollicite car j'ai un problème avec un fichier .csv qui fait planté ma macro.

Lorsque j'ouvre celui-ci de façon "classique" dirons-nous il apparaît sous forme de tableau comme ci-dessous (image 1) mais lorsque j'utilise ma macro il est comme sur la seconde image, de ce fait la macro que j'ai faite ne fonctionne plus.

capture d ecran 2024 12 19 152826 capture d ecran 2024 12 19 153009

Est-il possible de "forcer" la macro a intégré le fichier .csv comme sur la première image ou bien je dois enregistrer mon fichier au format .xlsx (ce qui m'arrange pas car je fais l'extraction de 150 fichiers par mois) pour que cela fonctionne ?

Je vous joins le fichier avec la macro (test) ainsi que le fichier .csv.

Merci par avance pour votre aide sur ce sujet.

13test.xlsm (80.20 Ko)
19op247-part-tp.csv (1.38 Ko)

Bonjour à tous !

L'intégration d'un fichier Csv se fait idéalement via Power Query. (Complément Microsoft à installer pour Excel 2013. Nativement intégré dans les versions ultérieures).

Précision : Power Query peut se charger d'opérer les retraitements souhaités.

Bonjour,

Il ne faut pas ouvrir un csv comme un fichier Excel, c'est un fichier texte, au delà de l'encodage qui peut remplacer les accents par des chaines de caractères, il faut utiliser Power Query sur les versions récentes d'Excel ou sur passer par l'ancienne version d'importation qui fonctionne toujours :

Sub Test()
    With ActiveSheet.QueryTables.Add(Connection:="TEXT;X:\Temp\op247-part-tp.csv", Destination:=Range("$A$1"))
        .TextFileStartRow = 1
        .Name = "op247-part-tpde"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 1252
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = False
        .TextFileSemicolonDelimiter = True
        .TextFileCommaDelimiter = False
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With
End Sub
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)

TextFileColumnDataTypes formate les colonnes 1=Standard, 2 = Texte... Voir aide.

Benoît Marchand

Rechercher des sujets similaires à "probleme integration fichier csv macro"