Microsoft 365 Import CSV

  • Initiateur de la discussion Initiateur de la discussion gabo29
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

gabo29

XLDnaute Junior
Bonjour le Forum,

Je travail sous windows en Angalis (Etats Unis), mon pack office est intégralement en Anglais et je suis bloqué sur une macro d'import de fichier en CSV. (séparateur ";")

Dans le code ci-dessous que j'utilise, les données viennent toutes se coller en Colonne A et alors que j'aimerais que chaque donnée aille dans une colonne :

Dim Path_TechFiles As String
Application.ScreenUpdating = False
Application.DisplayAlerts = False

Call Initialisation_Variables

Path_TechFiles = Path_Fichier_formule(1)
Call ChDirNet(Path_TechFiles)

Tech_File = Application.GetOpenFilename("Files Csv,*.csv")


If Not Tech_File = False Then
Current_Workbook = ThisWorkbook.Name
Workbooks.OpenText Filename:=Tech_File, DataType:=xlDelimited, Semicolon:=True, Local:=True
Tech_File_name = GetFilenameFromPath(Tech_File)
Tech_File = ActiveWorkbook.FullName
Cells.Copy
Windows(Current_Workbook).Activate
Feuil1.Activate
Feuil1.Range("A1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Workbooks(Tech_File_name).Close
End If
Feuil2.Select
Application.DisplayAlerts = True
Application.ScreenUpdating = True

End Sub


Pouvez vous m'aider svp ?
Merci
Cdt,
Gabo29
 
Salut🙂, Gabo29, Chris, Le Forum,

Un truc que j'utilise pour importer un csv, à adapter à tes besoins.
VB:
Option Explicit

Dim Fichier As Variant, oFSO As Object, Chemin As String, NomFichier As String ', NewNomFichier As String

Sub Importer_FichierCSV()
   Dim i As Long
   'choix du fichier à traiter
   Fichier = Application.GetOpenFilename("Tous les fichiers (*.csv),*.csv")
   If Fichier = False Then Exit Sub
   '---------------------------------------------------------------------
   'Avec la méthode "GetBaseName" on extrait le nom du fichier sans son extension (ex: .csv)
   Set oFSO = CreateObject("Scripting.FileSystemObject")
   NomFichier = oFSO.getbasename(Fichier)
   '---------------------------------------------------------------------
   'On récupère seulement le chemin du fichier, pour enregistrer le fichier_traité dans le même répertoire
   i = InStr(1, StrReverse(Fichier), "\", vbTextCompare)
   If i <> 0 Then
      Chemin = Left(Fichier, Len(Fichier) - i)  ' rajouter & "\" ou non suivant besoin
   End If
   Chemin = Chemin & "\"   'on rajoute le "\"
   '---------------------------------------------------------------------
   'on vide la feuille dans le cas où on traite d'autres fichiers
   Feuil1.Cells.Clear
   '---------------------------------------------------------------------
   'Importation des données
   With ActiveSheet.QueryTables.Add("TEXT;" & Fichier, [A1])
        .TextFileOtherDelimiter = ";" 'défini le délimiteur
        .TextFilePlatform = 65001 'unicode(UFT-8)
        .Refresh 'exécute la requête
        .Delete 'supprime la connexion
    End With
End Sub
En utilisant l'enregistreur de macro, tu pourras connaitre les différents codes de TextFilePlatform. Dans mon code 65001 est pour l'unicode(UFT-8)

Bonne continuation, en espérant que ça pourra te servir.
 
Bonjour cp4, le forum,
Merci bcp, j'ai adapté le code et cela fonctionne désormais.
J'ai une dernière question, dans mon fichier CSV que j'importe, j'ai du texte et des nombres. Comment faire pour remettre le format nombre de certaines colonnes ?
 
Bonjour Gabo29,

à adapter à tes colonnes avec et sans séparateur de milliers
VB:
With ActiveSheet
        .Columns("F:F").NumberFormat = "0.00"       'Décimal sans séparateur de milliers
        .Columns("G:G").NumberFormat = "#,##0.00"   'Décimal avec séparateur de milliers
End With
Bonne continuation.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
22
Affichages
3 K
Réponses
2
Affichages
1 K
Réponses
8
Affichages
894
Réponses
4
Affichages
820
Retour