Difficile de paramétrer OpenText lors d'un import CSV

  • Initiateur de la discussion Initiateur de la discussion CAPRI_456
  • 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 !

CAPRI_456

XLDnaute Occasionnel
Bonjour le Forum,


J'ai quelques soucis lors de l'imporation de CSV vers XLS


Mon code est :

Workbooks.OpenText (Chemin0) & lefichier, _
DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, _
Other:=True, _

OtherChar:=","

Cependant, le résultat en XLS est décalé dans les colonnes .
Cela est probablement du au contenu de certains champs CSV :
a) qui reprennent par exemple un poids indiqué comme suit (4.762)
(exemple Box,4.762, ZMU,,,FISHER)
Il me répartit alors 4 dans une col et 762 dans la suivante cela augmente le nombre de colonnes dans XLS et provoque des décalages dans les autres lignes du tableur...


Comment remédier cela dans les paramètres d'OpenText ?

Merci pour votre aide

CAPRI_456


 
Re : Difficile de paramétrer OpenText lors d'un import CSV

Bonjour Capri

essaye peut être ainsi, non testé...

Code:
Workbooks.OpenText (Chemin0) & lefichier, _
    DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, comma:=True

bon après midi
@+
 
Re : Difficile de paramétrer OpenText lors d'un import CSV

Bonjour tous,

Peut être en rajoutant une précision sur le séparateur décimal des données.
Code:
DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, _
Other:=True, _
OtherChar:=",", _
local:=True, _
[B][COLOR=red]DecimalSeparator := "."[/COLOR][/B]

A+ à tous
 
Re : Difficile de paramétrer OpenText lors d'un import CSV

bonjour Capri,Hasco,Mj,Pierrot

essaye ce code,testé

Sub ImportInfoTxt()
Dim wS As Worksheet
Set wS = Sheets("Import")

wS.Cells.ClearContents

Filename = Application.GetOpenFilename(filefilter:="Fichiers txt (*.txt), *.txt", Title:="Choisir le fichier txt")
If UCase(Filename) = "FAUX" Then
MsgBox "Opération annulée"
Exit Sub
End If

Set qtQtrResults = _
wS.QueryTables.Add(Connection:="TEXT;" & Filename, Destination:=wS.Cells(1, 1))
With qtQtrResults
.TextFileParseType = xlDelimited
.TextFileOtherDelimiter = "\"
.Refresh
End With

AjoutFeuille1
End Sub

à bientôt
 
Re : Difficile de paramétrer OpenText lors d'un import CSV

Bonjour Le Forum,
Pierrot, MJA3 , HASCO,

J'ai tenté successivement vos propositions,

Il m'affiche toujours pour:

les poids 0002.452 (soit 2kgs 452 gr) ou
les volumes 0000.192 (soit 0 M3 192 cm3)
2 dans une col et 452 dans celle qui suit
0 dans une col et 192 dans celle qui suit
Il ne s'agit donc pas de décimales mais de séparateur de milliers

Je vais donc tester ThousandsSeparator:="."

et pour les montants 0000000123.75 (soit 123 € 75 cents)
DecimalSeparator:="."

Cependant, je me demande comment excel va appliquer cela à l'une ou à l'autre colonne puisqu'il s'agit dans les deux cas du séparateur "."

Je vais tester...
Ouuppps voilà que j'ai pas le temps d'assimiler avant le boulot que voilà notre ami Bebere qui s'est levé dès 05h43😉 (j'te dis pas) du mat pour me fournir une autre proposition.....

Je vois tout cela et reviens à vous

Merci à tous pour votre soutien

CAPRI_456


 
Re : Difficile de paramétrer OpenText lors d'un import CSV

Bonjour Capri, Pierrot, Ges , Bebere

Sinon il y a une autre façon de procéder.

Comme un fichier Csv a en général toujours la même structure (pour un type d'application), tu peux essayer de renommer le .csv en .txt.

Puis tu lances Henry (Henry Gistrair de Macrow),tu ouvres ton fichier txt et tu testes les différents assitants d'import pour voir celui qui convient.

Ensuite tu arrêtes Henry, et tu récupères le code.

Normalement cela devrait te faire gagner du temps, à condition que ton fichier ai les bon délimiteurs.
 
Re : Difficile de paramétrer OpenText lors d'un import CSV

Bonjour yeahou, Pierrot93, Mj13, Hasco, Bebere, le forum,


J'ai pour mon application utilisé "HENRY"(Henry Gistrair de Macrow)😉, proporsée par MJ13comme suit :

A- CODE QUI renomme LES CSV en TXT
lefichierCSV = Dir(CheminCSV)
While lefichierCSV <> "" ' s'il existe un fichier

If Right(lefichierCSV, 3) = "csv" Then ' UNIQUEMENT SI CSV
' alors renomme CSV en TXT dans répertoire TXT

Name CheminCSV & "\" & lefichierCSV As CheminTXT & "\" & Left(lefichierCSV, Len(lefichierCSV) - 4) & ".TXT"
End If
lefichierCSV = Dir() ' pour affecter le nom de fichier suivant dans

Wend


'B === CODE QUI CONVERTIT LES TXT en XLS à l'ouverture
B1) recherche de fichiers dans un répertoire (sur le Forum)

Dim fs, f, f1, fc, s
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(CheminTXT)
Set fc = f.Files

For Each f1 In fc
If UCase(f1.Name) Like "*.TXT" Then

lefichierTXT = Dir(CheminTXT)

B2 -méthode "OPENTEXT"

Code obtenu grâce à "HENRY"😉 qui permet de paramétrer les datas à l'importation.

Workbooks.OpenText (CheminTXT) & lefichierTXT _
, Origin:=xlMSDOS, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
Comma:=True, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), _
Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1), Array(8, 1), _
Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1), Array(14, 1), Array(15 _
, 1), Array(16, 1), Array(17, 1), Array(18, 1), Array(19, 1), Array(20, 1), Array(21, 1), _
Array(22, 1), Array(23, 1), Array(24, 1), Array(25, 1), Array(26, 1), Array(27, 1), Array( _
28, 1), Array(29, 1), Array(30, 1), Array(31, 1), Array(32, 1), Array(33, 1), Array(34, 1), _
Array(35, 1), Array(36, 1), Array(37, 1), Array(38, 1), Array(39, 1), Array(40, 1), Array( _
41, 1), Array(42, 1), Array(43, 1), Array(44, 1), Array(45, 1), Array(46, 1), Array(47, 1)) _
, TrailingMinusNumbers:=True



Résultat parfait qui restpece dates, décimales, milliers,....

Merci à tous, au Forum,

CAPRI_456
 
- 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
Retour