Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Help urgent pb avec csv et séparateur ","

7 réponses
Avatar
marcsulli
Bonjour,
Bonjour,
j'ai un problème urgent à résoudre :
- j'ai un fichier csv avec separateur point virgule
- j'ai besoin d'un fichier excel avec données dans colonnes

voila un extrait de mon fichier CSV :
Quantité,0,0,140,400,"1,900","1,700",0
Montant,0.00,0.00,"14,000.00","20,000.00","38,000.00","17,000.00",0.00

voici ce que je désirais avoir au final :
Quantité 0 0 140 400 1900 1700 0
Montant 0 0 14000 20000 38000 17000 0

le probleme que je trouve est que dans mes données sources pour les quantités , j'ai un format sans decimal alors que pour le montant j'ai deux decimal apres la virgule.
Lorsque je réalise ma convertion avec Excel il m'affiche au final apres plusieurs manipulation une quantité de 1,9 pour un montant de 38000 ce qui est faut
pourriez vous m'aider au plus vite... d'avance merci

7 réponses

Avatar
Jean-Claude
Bonjour,

sous Excel 2003, menu Données/Convertir,
choisir Délimité, Suivant,
choisir Virgule, Suivant,
cliquer sur le bouton Avancé, choisir en séparateur décimal le point et
séparateur des milliers la virgule, Ok,
Terminer (en laissant les colonnes en Standard),
et ca donne :
Quantité 0 0 140 400 1 900 1 700 0
Montant 0 0 14 000,00 20 000,00 38 000,00 17 000,00 0

Tout au plus, reste-t-il à unifier le format d'affichage au niveau des
décimales...
Cordialement,
Jean-Claude
Avatar
michdenis
Bonjour,

Tu colles ce qui suit dans un module standard
et tu renseignes les variables dans la procédure :

'-----------------------------------------------
Sub ImporterFichiersTextes()

Dim A As Integer, T As Variant
Dim Fichier As String, Sep As String
Dim WholeLine As String, Rg As Range
Dim NomFeuille As String

Application.ScreenUpdating = False

'****Définir les variables********

'Chemin et nom du fichier .csv
Fichier = "C:Denis1.csv"
'Séparateur du fichier texte
Sep = ";"
'Nom de la feuille du classeur actuel
'où seront insérés les données.
NomFeuille = "Import_MichD"

On Error Resume Next
Application.DisplayAlerts = False
Worksheets(NomFeuille).Delete
Set Sh = Worksheets.Add
Sh.Name = NomFeuille
With Sh
A = 1
Open Fichier For Input Access Read As #1
While Not EOF(1)
Line Input #1, WholeLine
T = Split(WholeLine, Sep)
With .Range("A" & A).Resize(, UBound(T) + 1)
.NumberFormat = "@"
.Value = T
A = A + 1
End With
Wend
Close #1
Set Rg = .UsedRange
End With
LeFormat Rg
Application.ScreenUpdating = True
End Sub
'-----------------------------------------------
Sub LeFormat(Rg As Range)
With Rg
.Replace Chr(160), ""
.Replace ",", ""
.Replace ".", ","
.Replace """", ""
.NumberFormat = "General"
.Replace ",", "."
End With
With Worksheets(Rg.Parent.Name)
With .Range("IV65536")
.Value = 1
.Copy
End With
Rg.PasteSpecial xlPasteValues, xlPasteSpecialOperationMultiply
.Range("IV65536") = ""
.Range("A1").Select
End With
End Sub
'-----------------------------------------------


MichD
--------------------------------------------
"marcsulli" a écrit dans le message de groupe de discussion :

Bonjour,
Bonjour,
j'ai un problème urgent à résoudre :
- j'ai un fichier csv avec separateur point virgule
- j'ai besoin d'un fichier excel avec données dans colonnes

voila un extrait de mon fichier CSV :
Quantité,0,0,140,400,"1,900","1,700",0
Montant,0.00,0.00,"14,000.00","20,000.00","38,000.00","17,000.00",0.00

voici ce que je désirais avoir au final :
Quantité 0 0 140 400 1900 1700 0
Montant 0 0 14000 20000 38000 17000 0

le probleme que je trouve est que dans mes données sources pour les quantités ,
j'ai un format sans decimal alors que pour le montant j'ai deux decimal apres la
virgule.
Lorsque je réalise ma convertion avec Excel il m'affiche au final apres
plusieurs manipulation une quantité de 1,9 pour un montant de 38000 ce qui est
faut
pourriez vous m'aider au plus vite... d'avance merci
Avatar
michdenis
On peut faire aussi cela avec un fichier .csv ?


MichD
--------------------------------------------
Avatar
marcsulli
Jean-Claude a écrit le 16/02/2011 à 20h46 :
Bonjour,

sous Excel 2003, menu Données/Convertir,
choisir Délimité, Suivant,
choisir Virgule, Suivant,
cliquer sur le bouton Avancé, choisir en séparateur
décimal le point et
séparateur des milliers la virgule, Ok,
Terminer (en laissant les colonnes en Standard),
et ca donne :
Quantité 0 0 140 400 1 900 1 700 0
Montant 0 0 14 000,00 20 000,00 38 000,00 17 000,00 0

Tout au plus, reste-t-il à unifier le format d'affichage au niveau des
décimales...
Cordialement,
Jean-Claude


merci pour cette reponse
marcsulli
Avatar
michdenis
Ta question était :

| j'ai un problème urgent à résoudre :
| - j'ai un fichier csv avec separateur point virgule
| - j'ai besoin d'un fichier excel avec données dans colonnes

Selon la solution proposée, on peut conclure que tu avais la "VIRGULE" COMME SÉPARATEUR d'éléments.




MichD
--------------------------------------------
Avatar
Jean-Claude
"michdenis" a écrit dans le message de news:
ijj2qf$rbe$
Ta question était :

| j'ai un problème urgent à résoudre :
| - j'ai un fichier csv avec separateur point virgule
| - j'ai besoin d'un fichier excel avec données dans colonnes

Selon la solution proposée, on peut conclure que tu avais la "VIRGULE"
COMME SÉPARATEUR d'éléments.




MichD
--------------------------------------------




Je n'avais pas bien lu la phrase, et m'étais plus attardé sur l'exemple,
qui, c'est vrai, se contredisaient...
Jean-Claude
Avatar
Jean-Claude
"michdenis" a écrit dans le message de news:
ijhdhe$veh$
On peut faire aussi cela avec un fichier .csv ?


MichD
--------------------------------------------



Je ne suis pas sûr de comprendre la question.
Le principe que j'évoquais fonctionne avec un fichier csv ou si le texte est
déjà présent dans Excel, non ?
A vrai dire, un fichier csv contenant l'exemple de Marcsulli, s'ouvre avec
toutes les données dans la 1ère colonne, car le séparateur est la virgule et
non le point-virgule.
Mais bon, Marcsulli semble y trouver son compte :-)
Jean-Claude