Importation de fichiers CSV dans Excel à l'aide d'une macro

Je souhaite développer une macro où dans ma feuille de calcul Excel je tape une date dans une cellule spécifique, et la macro entrera dans un dossier contenant des fichiers texte. Une base de données que vous pourriez dire. Je veux qu'il trouve le nom de fichier correspondant qui est écrit en tant que date, mettez les données à travers un délimiteur et collez dans les cellules directement ci-dessous où j'ai initialement mis la date.

Le dossier sera toujours au même endroit et les fichiers texte seront tous formatés DD_MM_YYYY. Et les cellules ci-dessous seront toujours vides

Quelques photos pour rendre ce que je demande plus facile à comprendre.

Résultat Entrée de données Étape 1Entrée de données Étape 2Entrée de données Étape 3

One Solution collect form web for “Importation de fichiers CSV dans Excel à l'aide d'une macro”

Ceci est plus simple que vous ne le pensez, car vous pouvez invoquer l'assistant d'importation de texte (ou plutôt, vous pouvez utiliser ses fonctionnalités) à partir d'une macro, il n'est pas nécessaire d'écrire un analyseur CSV ou quelque chose de fantastique comme celui-ci.

En fait, tout ce que j'ai fait avec la macro ci-dessous est d'utiliser la fonction d'enregistrement intégrée, puis de la modifier un peu pour répondre à vos besoins.

Utilisation de la macro:

  1. Sauvegardez votre fichier Excel actuel, dans le cas où quelque chose ne va pas.

  2. Modifiez la définition du folder dans la macro pour être le chemin contenant tous vos fichiers de données – assurez-vous d'inclure une barre oblique.

  3. Sélectionnez la cellule d'en-tête des colonnes, qui doit contenir le nom d'un de vos fichiers, y compris l'extension du fichier . Vous pouvez éditer ce champ après la chargement des données si vous souhaitez supprimer l'extension.

  4. Exécutez la macro.

actes

Cela prendra le nom du fichier à partir de la cellule actuelle, regarde dans le folder spécifié et ouvre le fichier spécifié dans la cellule. Ensuite, il l'importera comme CSV, exactement une cellule sous la cellule sélectionnée (lors du démarrage de la macro).

En tant que tel, il remplacera probablement les cellules sous la cellule sélectionnée lors de l'exécution de la macro – la prudence est conseillée.

Si le fichier n'est pas trouvé, ou une autre erreur se produit, cela échouera avec une boîte d'erreur VBA normale, pas de messages d'erreur amicaux.

Code Macro

Une partie de cela peut probablement être coupé – comme je l'ai dit, je l'ai obtenu à partir d'un enregistrement plutôt que d'apprendre à utiliser les utilisateurs QueryTables moi-même – mais cela ne nuira pas tel quel, et semble fonctionner de manière fiable.

 Sub LoadFromFile() Dim fileName As String, folder As String folder = "C:\Path\To\Your\Files\" fileName = ActiveCell.Value ActiveCell.Offset(1, 0).Range("A1").Select With ActiveSheet.QueryTables _ .Add(Connection:="TEXT;" & folder & fileName, Destination:=ActiveCell) .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 = False .TextFileSemicolonDelimiter = False .TextFileCommaDelimiter = True .TextFileSpaceDelimiter = False .TextFileColumnDataTypes = Array(1, 1, 1, 1) .TextFileTrailingMinusNumbers = True .Refresh BackgroundQuery:=False End With End Sub 
  • Transformée de données de la feuille de calcul Excel
  • Dans Excel, j'ai collé sur un tas d'URL, mais ce ne sont pas des liens en direct: comment puis-je les convertir en masse en liens en direct?
  • XYZ 3D-chart dans Excel
  • Comment puis-je utiliser Excel 2010 Personal Macro Workbook?
  • Comment puis-je faire un lien hypertexte entre PowerPoint et Excel, en lien avec un onglet spécifique et une gamme ou une cellule nommée?
  • Dans Excel 2010, comment puis-je créer un modèle avec une fonction se termine automatiquement dans la dernière cellule avec des données?
  • Excel SUMIFS basé sur deux critères
  • Excel: comment appliquer en permanence un formatage conditionnel à l'ensemble de la feuille de calcul?
  • Les adresses cellulaires (par rapport aux contenus cellulaires) peuvent-elles être utilisées comme opérandes dans les formules Excel?
  • VLOOKUP avec plusieurs critères
  • Regroupement d'étiquettes et concaténation de leurs valeurs de texte (comme un tableau pivot)
  • Soyons le génie de l'ordinateur et du réseau.