Convertion de données contenant une virgule
Bonjour,
Je rencontre une difficulté concernant l'importation puis la conversion des données issues d'un fichier csv.
Excel, par défaut, positionne toute les données dans la colonne A excepté si une virgule est présente.
Dans ce cas, il positionne en colonne B la suite des éléments.
Cela me bloque la possibilité de faire un traitement pour placer les données voulu dans chaque colonne en travaillant sur le ; en séparateur dans le fichier CSV.
Je note que si j'ouvre le fichier csv directement avec Excel l'anomalie ne se présente pas, par contre si j'importe le fichier je rencontre la difficulté.
Auriez-vous une idée à partager pour contourner cette problématique ?
Ci-dessous un exemple des données CSV.
Merci pour votre aide
Dossier;Description;Equipe;Département;Commune;Conception;Réalisation;Chef d'équipe;Comptabilité;Alerte identifié;Livraison prévue;Accord du client;Envoi du devis;Démarrage travaux;Fin travaux;Mise en service;PV essais;Fin Travaux (prévue);Fin Travaux (réalisé);Etat du dossier;Etat du devis
AC28/052487;Elec M1, Gaz M2;Paris;75;Paris;Gerald;Olivier;Mathilde;1;Mise en service dans 10 jours;10/10/2018;21/02/2018;14/01/2018;28/04/2018;;07/10/2018;;25/07/2019;;En etude execution;Accepté - Annulé
DE56/324698;Eau Z2;Le Mans;72;Le Mans;Stéphanie;Jérôme;Alexandra;2;Mise en service dans 10 jours;19/07/2018;14/06/2018;07/05/2018;14/06/2019;04/07/2019;10/07/2018;;;;;;En attente accord client;Annulé - En attente accord client
Et également le code vba que j'utilise pour réaliser l'importation
Private Sub Import_Facturation()
Dim wkbCrntWorkBook As Workbook
Dim wkbSourceBook As Workbook
Dim rngSourceRange As Range
Dim rngDestination As Range
Set wkbCrntWorkBook = ActiveWorkbook
With Application.FileDialog(msoFileDialogOpen)
.InitialFileName = "C:\Users\Wahiba\Downloads\"
.Filters.Clear
.Filters.Add "Fichier CSV (séparateur ;)", "*.csv"
.AllowMultiSelect = False
.Show
If .SelectedItems.Count > 0 Then
Workbooks.Open .SelectedItems(1)
Application.ScreenUpdating = False
Set sourceBook = ActiveWorkbook
sourceBook.Sheets(1).Copy After:=ThisWorkbook.Sheets(5)
sourceBook.Close
Sheets(6).Name = "Facturation"
Application.ScreenUpdating = True
Worksheets("Home").Activate
MsgBox "Importation des données achevée", vbOKOnly + vbInformation, "Import facturation"
End If
End With
End SubBonjour,
Si tu renommes ton fichier .csv en .txt
Ceci fonctionne bien et ne tient pas compte des virgules
Private Sub Import_Facturation()
Dim wkbCrntWorkBook As Workbook
Dim wkbSourceBook As Workbook
Dim rngSourceRange As Range
Dim rngDestination As Range
Set wkbCrntWorkBook = ActiveWorkbook
With Application.FileDialog(msoFileDialogOpen)
.InitialFileName = "C:\Users\Wahiba\Downloads\"
.Filters.Clear
.Filters.Add "Fichier CSV (séparateur ;)", "*.txt" ''"*.csv"
.AllowMultiSelect = False
.Show
If .SelectedItems.Count > 0 Then
'' Workbooks.Open .SelectedItems(1)
Workbooks.OpenText Filename:=strPath & .SelectedItems(1), DataType:=xlDelimited, Semicolon:=True, DecimalSeparator:=",", ThousandsSeparator:="."
Application.ScreenUpdating = False
Set sourceBook = ActiveWorkbook
sourceBook.Sheets(1).Copy After:=ThisWorkbook.Sheets(5)
sourceBook.Close
Sheets(6).Name = "Facturation"
Application.ScreenUpdating = True
Worksheets("Home").Activate
MsgBox "Importation des données achevée", vbOKOnly + vbInformation, "Import facturation"
End If
End With
End Subric