Erreur lors de l'utilisation de VBA pour importer un file text séparé par des virgules sur une feuille de calcul – Excel 2013

J'utilise le code VB créé en enregistrant une macro. Je dois importer en tant que text, le contenu d'un file CSV dans une feuille de calcul. Le code que j'ai utilisé est ci-dessous.

Lorsque j'ai utilisé le code pour la première fois, j'ai eu une erreur

Erreur d'exécution 5, appel ou argument de procédure invalide

J'ai cherché sur Internet et j'ai trouvé quelques personnes dire que le code généré comprend la ligne .commandtype = 0 , mais il s'agit d'un bug Microsoft car il n'y a pas de command 0 et je devrais simplement omettre cette ligne. Je l'ai commenté et cela a fonctionné pendant un certain time.

Maintenant, quelques heures plus tard, il en résulte la même erreur. J'ai exclu la commandtype =0 ligne commandtype =0 et l' commandtype =0 inclus, mais j'ai la même erreur. J'ai un peu marqué le code, donc je sais que c'est là qu'il s'arrête.

Est-ce que quelqu'un peut aider avec cela, ou même fournir un meilleur code s'il vous plaît? Je développe ceci dans Excel 2013/365, mais il sera utilisé sur le mélange de PC Excel 2007, 2010 et 2013.

En passant, j'ai inclus tout le code qui inclut également une invite à l'user demandant s'ils veulent importer datatables et met une estampille sur une feuille de calcul avec la date et l'heure où le file de données source a été créé. Je l'ai inclus dans le cas où il y a un problème dans ce code.

 Sub Read_por800() ' ' Read_por800 Macro ' Read CSV file 'por800.csv' from named folder to worksheet 'data' ' 'PART 1: Prompt to ask user if they want to update worksheet 'data' Dim LResult As Date 'Text to display is shown here. MyNote = "Do you want to update worksheet 'data'?" 'Display MessageBox - note the text in capitals. This is the label for the message box. Answer = MsgBox(MyNote, vbQuestion + vbYesNo, "QUESTION") ' Now there is an 'If' statement to see if the user hit the 'No' button If Answer = vbNo Then 'Code for No button Press - just quit this routine Exit Sub End If ' Answer is Yes, so continue With ActiveSheet.QueryTables.Add(Connection:= _ "TEXT;C:\temp\por800.csv", Destination:=Range("$A$1")) ' .CommandType = 0 .Name = "por800_1" .FieldNames = True .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False .RefreshStyle = xlInsertDeleteCells .SavePassword = False .SaveData = True .AdjustColumnWidth = True .RefreshPeriod = 0 .TextFilePromptOnRefresh = False .TextFilePlatform = 850 .TextFileStartRow = 1 .TextFileParseType = xlDelimited .TextFileTextQualifier = xlTextQualifierDoubleQuote .TextFileConsecutiveDelimiter = False .TextFileTabDelimiter = True .TextFileSemicolonDelimiter = False .TextFileCommaDelimiter = True .TextFileSpaceDelimiter = False .TextFileColumnDataTypes = Array(1, 2, 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 ' Update date and time from 'por800' filename and store it in G2 on worksheet T2 to show time and date data was generated. LResult = FileDateTime("C:\temp\por800.csv") Worksheets("T2").Range("G1").Value = LResult End Sub Group Customer Item Description Customer Stock 03/06/15 Supplier Stock 03/06/15 Reject Stock 03/06/15 iPro Stock 03/06/15 Weekly Usage Safety Stock Target Total At Sea Arrive Week Beginning 31/05/15 Arrive Week Beginning 07/06/15 Arrive Week Beginning 14/06/15 Arrive Week Beginning 21/06/15 Arrive Week Beginning 28/06/15 Arrive Week Beginning 05/07/15 Remaining Orders cover with supplier Customer Demand F/C JUN F/C JUL F/C AUG F/C SEP F/C OCT S05 000-F00316 M3x16 MSCR CSK PAS 0 0 0 144 0 0 0 0 0 0 0 0 0 0 0 0 0 0 S05 000-F00408 MSCR M4x8 CSK PAS 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 S05 000-P00308-W M3X8 MSCR PAN W/FS PAS 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 S05 000-P00310-W M3X10 MSCR W/S PAS 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 S05 000-P00312-PN M3x12 MSCR PAN NYLON NAT 0 0 0 48 0 0 0 0 0 0 0 0 0 0 0 0 0 0 

Désolé – j'ai remarqué que je coupe et collé du file CSV tout en étant ouvert dans Excel. Vous findez ci-dessous l'extrait de celui-ci tout en étant ouvert dans Notepad ++. Il est séparé par des virgules.

CSV Extract Version

 Group Customer,Item,Description,Customer Stock 03/06/15,Supplier Stock 03/06/15,Reject Stock 03/06/15,iPro Stock 03/06/15,Weekly Usage,Safety Stock Target,Total At Sea,Arrive Week Beginning 31/05/15,Arrive Week Beginning 07/06/15,Arrive Week Beginning 14/06/15,Arrive Week Beginning 21/06/15,Arrive Week Beginning 28/06/15,Arrive Week Beginning 05/07/15,Remaining Orders cover with supplier,Customer Demand,F/C JUN,F/C JUL,F/C AUG,F/C SEP,F/C OCT S05,000-F00316,M3x16 MSCR CSK PAS,0,0,0,144,0,,,0,0,0,0,0,0,0,0,0,0,0,0,0 S05,000-F00408,MSCR M4x8 CSK PAS,0,0,0,0,0,,,0,0,0,0,0,0,0,0,0,0,0,0,0 S05,000-P00308-W,M3X8 MSCR PAN W/FS PAS,0,0,0,0,0,,,0,0,0,0,0,0,0,0,0,0,0,0,0 S05,000-P00310-W,M3X10 MSCR W/S PAS,0,0,0,0,0,,,0,0,0,0,0,0,0,0,0,0,0,0,0 S05,000-P00312-PN,M3x12 MSCR PAN NYLON NAT,0,0,0,48,0,,,0,0,0,0,0,0,0,0,0,0,0,0,0