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

Le
marcsulli Hors ligne
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jean-Claude
Le #23132541
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
michdenis
Le #23132581
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
michdenis
Le #23132791
On peut faire aussi cela avec un fichier .csv ?


MichD
--------------------------------------------
marcsulli Hors ligne
Le #23133781
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
michdenis
Le #23134181
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
--------------------------------------------
Jean-Claude
Le #23135051
"michdenis" 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
Jean-Claude
Le #23135101
"michdenis" 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
Publicité
Poster une réponse
Anonyme