Csv en xlsx, problème décimale
Résolu/Fermé
Quoi29
Messages postés
19
Date d'inscription
mardi 17 avril 2018
Statut
Membre
Dernière intervention
5 septembre 2019
-
Modifié le 30 avril 2018 à 15:36
Quoi29 Messages postés 19 Date d'inscription mardi 17 avril 2018 Statut Membre Dernière intervention 5 septembre 2019 - 3 mai 2018 à 11:13
Quoi29 Messages postés 19 Date d'inscription mardi 17 avril 2018 Statut Membre Dernière intervention 5 septembre 2019 - 3 mai 2018 à 11:13
A voir également:
- Csv en xlsx, problème décimale
- Comment ouvrir un fichier xlsx ? - Guide
- Xlsx viewer - Télécharger - Tableur
- Tabulation décimale word - Guide
- Xlsx repair - Télécharger - Récupération de données
- Libre office xlsx - Guide
4 réponses
Quoi29
Messages postés
19
Date d'inscription
mardi 17 avril 2018
Statut
Membre
Dernière intervention
5 septembre 2019
30 avril 2018 à 15:49
30 avril 2018 à 15:49
En essayant la solution proposée ici j'ai le même problème (non prise en compte de la virgule): https://www.developpez.net/forums/d554988/logiciels/microsoft-office/excel/macros-vba-excel/vba-conversion-xls-csv-point-virgule/
En esseyant la solution proposé ici cela ne me solutionne pas mon problème non plus:
https://www.herber.de/forum/archiv/948to952/950069_Punkt_statt_Komma.html
Supprimer la ligne ci-dessous ne change rien au problème
Ajouter la ligne ci-dessous ne change pas le problème non plus
For Each Import In csvFolder.Files
If LCase(Right(Import.Name, 3)) = "csv" Then
Set activeImport = Workbooks.Open(Import)
activeImport.SaveAs Filename:=S & "\" & Left(activeImport.Name, Len(activeImport.Name) - 3) & "xlsx", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False, Local:=True
Uimp.DocName.Caption = Left(activeImport.Name, Len(activeImport.Name) - 5)
activeImport.Close savechanges:=False
End If
Next
En esseyant la solution proposé ici cela ne me solutionne pas mon problème non plus:
https://www.herber.de/forum/archiv/948to952/950069_Punkt_statt_Komma.html
Supprimer la ligne ci-dessous ne change rien au problème
.UseSystemSeparators = True
Ajouter la ligne ci-dessous ne change pas le problème non plus
.DecimalSeparator=","
f894009
Messages postés
17239
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
10 février 2025
1 713
30 avril 2018 à 15:50
30 avril 2018 à 15:50
Bonjour,
Lorsque j'utilise le tool d'importation d'Excel cela fonctionne mais
Y a qu'a utiliser l'enregistreur de macro!!!!
Lorsque j'utilise le tool d'importation d'Excel cela fonctionne mais
Y a qu'a utiliser l'enregistreur de macro!!!!
Quoi29
Messages postés
19
Date d'inscription
mardi 17 avril 2018
Statut
Membre
Dernière intervention
5 septembre 2019
Modifié le 30 avril 2018 à 17:04
Modifié le 30 avril 2018 à 17:04
Bonjour f894009,
Lorsque j'utilise le tool d'importation excel voici le code qu'il ressort:
Afin que le fichier soit sélectionner en fonction de ce que rentre l'utilisateur comme adresse, j'ai essayé de le modifier de la facon suivante mais cela ne fonctionne pas:
Lorsque j'utilise le tool d'importation excel voici le code qu'il ressort:
Workbooks.Add
ActiveWorkbook.Queries.Add Name:=Import, Formula:= _
"let" & Chr(13) & "" & Chr(10) & " Quelle = Csv.Document(File.Contents(""U:\Box Sync\Hybrid (internal)\01_Tools\05_Ecoflow\Work for Hybrid Report recuperation\VBA Import tool\Import test\V1.csv"""),[Delimiter="","", Columns=37, Encoding=1252, QuoteStyle=QuoteStyle.None])," & Chr(13) & "" & Chr(10) & " #""Geänderter Typ"" = Table.TransformColumnTypes(Quelle,{{""Column1"", type text}, {""Column2"", type text}, {""Colum" & _
"n3"", type text}, {""Column4"", type text}, {""Column5"", type text}, {""Column6"", type text}, {""Column7"", type text}, {""Column8"", type text}, {""Column9"", type text}, {""Column10"", type text}, {""Column11"", type text}, {""Column12"", type text}, {""Column13"", type text}, {""Column14"", type text}, {""Column15"", type text}, {""Column16"", type text}, {""Co" & _
"lumn17"", type text}, {""Column18"", type text}, {""Column19"", type text}, {""Column20"", type text}, {""Column21"", type text}, {""Column22"", type text}, {""Column23"", type text}, {""Column24"", type text}, {""Column25"", type text}, {""Column26"", type text}, {""Column27"", type text}, {""Column28"", type text}, {""Column29"", type text}, {""Column30"", type te" & _
"xt}, {""Column31"", type text}, {""Column32"", type text}, {""Column33"", type text}, {""Column34"", type text}, {""Column35"", type text}, {""Column36"", type text}, {""Column37"", type text}})" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & " #""Geänderter Typ"""
ActiveWorkbook.Worksheets.Add
With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
"OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=V1;Extended Properties=""""" _
, Destination:=Range("$A$1")).QueryTable
.CommandType = xlCmdSql
.CommandText = Array("SELECT * FROM [V1]")
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.ListObject.DisplayName = "_V1"
.Refresh BackgroundQuery:=False
End With
Windows("New Ecoflow (in design).xlsm").Activate
Afin que le fichier soit sélectionner en fonction de ce que rentre l'utilisateur comme adresse, j'ai essayé de le modifier de la facon suivante mais cela ne fonctionne pas:
If Version = 1 Then
Imput = Uimp.V1.Value
Else
Imput = Uimp.V2.Value
End If
S = Uimp.Source.Value
Workbooks.Add
ActiveWorkbook.Queries.Add Name:=Imput, Formula:= _
"let" & Chr(13) & "" & Chr(10) & " Quelle = Csv.Document(File.Contents(S & "\" & Imput & ".csv"),[Delimiter="","", Columns=37, Encoding=1252, QuoteStyle=QuoteStyle.None])," & Chr(13) & "" & Chr(10) & " #""Geänderter Typ"" = Table.TransformColumnTypes(Quelle,{{""Column1"", type text}, {""Column2"", type text}, {""Colum" & _
"n3"", type text}, {""Column4"", type text}, {""Column5"", type text}, {""Column6"", type text}, {""Column7"", type text}, {""Column8"", type text}, {""Column9"", type text}, {""Column10"", type text}, {""Column11"", type text}, {""Column12"", type text}, {""Column13"", type text}, {""Column14"", type text}, {""Column15"", type text}, {""Column16"", type text}, {""Co" & _
"lumn17"", type text}, {""Column18"", type text}, {""Column19"", type text}, {""Column20"", type text}, {""Column21"", type text}, {""Column22"", type text}, {""Column23"", type text}, {""Column24"", type text}, {""Column25"", type text}, {""Column26"", type text}, {""Column27"", type text}, {""Column28"", type text}, {""Column29"", type text}, {""Column30"", type te" & _
"xt}, {""Column31"", type text}, {""Column32"", type text}, {""Column33"", type text}, {""Column34"", type text}, {""Column35"", type text}, {""Column36"", type text}, {""Column37"", type text}})" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & " #""Geänderter Typ"""
ActiveWorkbook.Worksheets.Add
With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
"OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=V1;Extended Properties=""""" _
, Destination:=Range("$A$1")).QueryTable
.CommandType = xlCmdSql
.CommandText = Array("SELECT * FROM [V1]")
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.ListObject.DisplayName = "_V1"
.Refresh BackgroundQuery:=False
End With
Windows("New Ecoflow (in design).xlsm").Activate
Quoi29
Messages postés
19
Date d'inscription
mardi 17 avril 2018
Statut
Membre
Dernière intervention
5 septembre 2019
2 mai 2018 à 16:08
2 mai 2018 à 16:08
Bonjour,
Je suis toujours bloqué avec mon problème. Personne pour m'aider?
Je suis toujours bloqué avec mon problème. Personne pour m'aider?
Quoi29
Messages postés
19
Date d'inscription
mardi 17 avril 2018
Statut
Membre
Dernière intervention
5 septembre 2019
3 mai 2018 à 11:13
3 mai 2018 à 11:13
EUREKA!!
Suite à différentes manipulations j'en ai conclu que l'erreur était étroitement lié à l'interprétation (langage) de VBA. En effet lorsque j'utilisais l'enregistreur de macro pour lui dire de copier coller les valeurs du fichier csv, manuellement cela fonctionnait mais pas lorsque je faisais tourner la macro enregistré lors de cette même manipulation. De plus, la seule chose qui marchait c'est lorsque j'utilisais le tool excel par la macro (ce qui est donc fait par excel et non VBA qui se charge juste de lancer le tool excel).
Suite à de nombreux sites et forums lus j'ai trouvé le lien suivant qui m'a sauvé (hallelujah): https://docs.microsoft.com/en-us/office/vba/api/Excel.Workbooks.Open
grâce à l'information suivante
![](https://img-19.ccm2.net/i4w2BjlMQQ78Sh0boEM2S1Cy_QY=/440x/553af2058cfb491d9c9b78e4bebd7f35/ccm-ugc/Solution_LocalTrue.JPG)
J'ai changé la ligne:
par:
Suite à différentes manipulations j'en ai conclu que l'erreur était étroitement lié à l'interprétation (langage) de VBA. En effet lorsque j'utilisais l'enregistreur de macro pour lui dire de copier coller les valeurs du fichier csv, manuellement cela fonctionnait mais pas lorsque je faisais tourner la macro enregistré lors de cette même manipulation. De plus, la seule chose qui marchait c'est lorsque j'utilisais le tool excel par la macro (ce qui est donc fait par excel et non VBA qui se charge juste de lancer le tool excel).
Suite à de nombreux sites et forums lus j'ai trouvé le lien suivant qui m'a sauvé (hallelujah): https://docs.microsoft.com/en-us/office/vba/api/Excel.Workbooks.Open
grâce à l'information suivante
J'ai changé la ligne:
Set activeImport = Workbooks.Open(Import)
par:
Set activeImport = Workbooks.Open(Import, , , , , , , , , , , , , True)