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

Chargement d'un fichier csv avec séparateurs dans Excel

9 réponses
Avatar
mfm21
Bonjour

J'essaye de charger un .csv dans Excel à partir de VB6.
Le chargement se fait, mais sans tenir compte des séparateur ";" donc tout
est dans la 1ère colonne.
Malgré mes recherches sur le net et diverses syntaxes, j'ai toujours le même
problème. Je n'ai pas trouvé d'option dans Excel permettant le chargement
direct d'un csv (j'ai le même problème en double-cliquant sur le .csv).

Mon csv comporte 20 colonnes, la dernière se termine par ";"

Voici quelques syntaxes essayées :

Syntaxe 1:
Const xlWindows = 2
Const xlDelimited = 1
Const xlDoubleQuote = 1
Set XL = CreateObject("Excel.Application")
XL.Visible = True
With XL
.Visible = True
.Workbooks.OpenText FileName:= _
"monfichier.csv", _
Origin:=xlWindows, StartRow:=1, dataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab _
:=False, Semicolon:=True, Comma:=False, 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))
End With

Syntaxe 2:
Set XL = CreateObject("Excel.Application")
Set XLwb = XL.Workbooks.Open("monfichier.csv")
Set XLws = XLwb.Worksheets(1)
XL.Visible = True
Set XL = Nothing

Syntaxe 3:
Set XL = CreateObject("Excel.Application")
XL.Visible = True
Workbooks.OpenText FileName:="monfichier, Origin:=xlWindows, _
StartRow:=1, dataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=True,
Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, 1)
Set XLwb = XL.ActiveWorkbook
Set XLws = XLwb.ActiveSheet
Set XL = Nothing


Merci par avance à tous ceux qui pourront me donner un coup de main.

--
Cordialement,
mfm21.

9 réponses

Avatar
Aski
Salutatoi mfm21,

Tu as donc déclaré :

Bonjour

J'essaye de charger un .csv dans Excel à partir de VB6.
Le chargement se fait, mais sans tenir compte des séparateur ";" donc
tout est dans la 1ère colonne.
Malgré mes recherches sur le net et diverses syntaxes, j'ai toujours
le même problème. Je n'ai pas trouvé d'option dans Excel permettant
le chargement direct d'un csv (j'ai le même problème en
double-cliquant sur le .csv).



J'ai maintes fois créé des fichiers texte au format CSV.
C'est une excellente solution pourvu qu'on évite si possible, d'utiliser la
virgule comme séparateur décimal.
Ces fichiers s'ouvent directement en double-cliquant dessus ou en ouvrant
comme fichier au format texte (CSV).
Si on utilise la seconde solution, la virgule peut être utilisée comme
séparateur décimal.
--
Aski
Avatar
mfm21
Bonjour
Je n'ai pas l'impression que vous ayez répondu à ma question.
J'ai besoin de charger ce fichier dans Excel à partir de VB.
Mes séparateurs ne sont pas des virgules mais des points-virgules.
Je n'arrive pas à savoir si mon problème (tout dans la première colonne) est
dû à la programation dans VB, à Excel ou à tout autre chose.
--
Cordialement,
mfm21.


"Aski" a écrit :

Salutatoi mfm21,

Tu as donc déclaré :

> Bonjour
>
> J'essaye de charger un .csv dans Excel à partir de VB6.
> Le chargement se fait, mais sans tenir compte des séparateur ";" donc
> tout est dans la 1ère colonne.
> Malgré mes recherches sur le net et diverses syntaxes, j'ai toujours
> le même problème. Je n'ai pas trouvé d'option dans Excel permettant
> le chargement direct d'un csv (j'ai le même problème en
> double-cliquant sur le .csv).

J'ai maintes fois créé des fichiers texte au format CSV.
C'est une excellente solution pourvu qu'on évite si possible, d'utiliser la
virgule comme séparateur décimal.
Ces fichiers s'ouvent directement en double-cliquant dessus ou en ouvrant
comme fichier au format texte (CSV).
Si on utilise la seconde solution, la virgule peut être utilisée comme
séparateur décimal.
--
Aski





Avatar
Aski
Salutatoi mfm21,

Tu as donc déclaré :

Bonjour
Je n'ai pas l'impression que vous ayez répondu à ma question.
J'ai besoin de charger ce fichier dans Excel à partir de VB.
Mes séparateurs ne sont pas des virgules mais des points-virgules.
Je n'arrive pas à savoir si mon problème (tout dans la première
colonne) est dû à la programation dans VB, à Excel ou à tout autre
chose.



Il est vrai que je n'ai répondu qu'à la seconde partie de ta question :

/////////////// rappel
Malgré mes recherches sur le net et diverses syntaxes, j'ai toujours
le même problème. Je n'ai pas trouvé d'option dans Excel permettant
le chargement direct d'un csv (j'ai le même problème en
double-cliquant sur le .csv).






////////////////

CSV veut bien dire séparateur virgule, mais peut s'utiliser avec un
séparateur point virgule comme je te le disais.

Colle la chaîne suivante :

Nom;Prenom;Age;Ville;Dupond;Jean;58;Marseille;Robin;;47;Paris;Etienne;Régis;45;Lourdes;Dupont;Jacques;"";Isigny;

dans un ficher 'Test.csv' et tu devrais pouvoir le charger dans Excel comme
je l'ai indiqué (je viens de le vérifier).

Aski

Salutatoi mfm21,

Tu as donc déclaré :

Bonjour

J'essaye de charger un .csv dans Excel à partir de VB6.
Le chargement se fait, mais sans tenir compte des séparateur ";"
donc tout est dans la 1ère colonne.



J'ai maintes fois créé des fichiers texte au format CSV.
C'est une excellente solution pourvu qu'on évite si possible,
d'utiliser la virgule comme séparateur décimal.
Ces fichiers s'ouvent directement en double-cliquant dessus ou en
ouvrant comme fichier au format texte (CSV).
Si on utilise la seconde solution, la virgule peut être utilisée
comme séparateur décimal.
--
Aski




Avatar
mfm21
Non, malheureusement, ça ne marche pas.
Je me demande s'il n'y a pas un paramétrage dans Excel (bien caché), ce qui
expliquerait que j'ai le même comportement en double-cliquant et et chargeant
par VB.
--
Cordialement,
mfm21.


"Aski" a écrit :

Salutatoi mfm21,

Tu as donc déclaré :

> Bonjour
> Je n'ai pas l'impression que vous ayez répondu à ma question.
> J'ai besoin de charger ce fichier dans Excel à partir de VB.
> Mes séparateurs ne sont pas des virgules mais des points-virgules.
> Je n'arrive pas à savoir si mon problème (tout dans la première
> colonne) est dû à la programation dans VB, à Excel ou à tout autre
> chose.

Il est vrai que je n'ai répondu qu'à la seconde partie de ta question :

/////////////// rappel
>>> Malgré mes recherches sur le net et diverses syntaxes, j'ai toujours
>>> le même problème. Je n'ai pas trouvé d'option dans Excel permettant
>>> le chargement direct d'un csv (j'ai le même problème en
>>> double-cliquant sur le .csv).
////////////////

CSV veut bien dire séparateur virgule, mais peut s'utiliser avec un
séparateur point virgule comme je te le disais.

Colle la chaîne suivante :

Nom;Prenom;Age;Ville;Dupond;Jean;58;Marseille;Robin;;47;Paris;Etienne;Régis;45;Lourdes;Dupont;Jacques;"";Isigny;

dans un ficher 'Test.csv' et tu devrais pouvoir le charger dans Excel comme
je l'ai indiqué (je viens de le vérifier).

Aski

>> Salutatoi mfm21,
>>
>> Tu as donc déclaré :
>>
>>> Bonjour
>>>
>>> J'essaye de charger un .csv dans Excel à partir de VB6.
>>> Le chargement se fait, mais sans tenir compte des séparateur ";"
>>> donc tout est dans la 1ère colonne.
>>
>> J'ai maintes fois créé des fichiers texte au format CSV.
>> C'est une excellente solution pourvu qu'on évite si possible,
>> d'utiliser la virgule comme séparateur décimal.
>> Ces fichiers s'ouvent directement en double-cliquant dessus ou en
>> ouvrant comme fichier au format texte (CSV).
>> Si on utilise la seconde solution, la virgule peut être utilisée
>> comme séparateur décimal.
>> --
>> Aski





Avatar
Aski
Salutatoi mfm21,

Tu as donc déclaré :

Non, malheureusement, ça ne marche pas.
Je me demande s'il n'y a pas un paramétrage dans Excel (bien caché),
ce qui expliquerait que j'ai le même comportement en double-cliquant
et et chargeant par VB.



Tu dois avoir effectivement un problème avec l'installation d'Excel qui ne
doit pas prendre en charge les fichiers en question (je suppose).
Regarde, dans le panneau de configuration > Ajout/Suppression de Programme >
Microsoft Office, si tu as bien chargé les composants nécessaires.
La séquence pour charger est
Fichiers
Ouvrir
Types de fichiers
Texte
--
Aski
Avatar
mfm21
J'ai trouvé quelque chose d'intéressant:
si j'enlève le paramètre "message DDE" dans les options avancées de
l'extension csv dans l'explorateur (outilsoptions des dossierstypes de
fichiers), le lancement par double-clic charge bien Excel en tenant compte
des points-virgules.
C'est déjà bien, j'aimerais maintenant faire l'équivallent en codant dans VB.

--
Cordialement,
mfm21.


"mfm21" a écrit :

Non, malheureusement, ça ne marche pas.
Je me demande s'il n'y a pas un paramétrage dans Excel (bien caché), ce qui
expliquerait que j'ai le même comportement en double-cliquant et et chargeant
par VB.
--
Cordialement,
mfm21.


"Aski" a écrit :

> Salutatoi mfm21,
>
> Tu as donc déclaré :
>
> > Bonjour
> > Je n'ai pas l'impression que vous ayez répondu à ma question.
> > J'ai besoin de charger ce fichier dans Excel à partir de VB.
> > Mes séparateurs ne sont pas des virgules mais des points-virgules.
> > Je n'arrive pas à savoir si mon problème (tout dans la première
> > colonne) est dû à la programation dans VB, à Excel ou à tout autre
> > chose.
>
> Il est vrai que je n'ai répondu qu'à la seconde partie de ta question :
>
> /////////////// rappel
> >>> Malgré mes recherches sur le net et diverses syntaxes, j'ai toujours
> >>> le même problème. Je n'ai pas trouvé d'option dans Excel permettant
> >>> le chargement direct d'un csv (j'ai le même problème en
> >>> double-cliquant sur le .csv).
> ////////////////
>
> CSV veut bien dire séparateur virgule, mais peut s'utiliser avec un
> séparateur point virgule comme je te le disais.
>
> Colle la chaîne suivante :
>
> Nom;Prenom;Age;Ville;Dupond;Jean;58;Marseille;Robin;;47;Paris;Etienne;Régis;45;Lourdes;Dupont;Jacques;"";Isigny;
>
> dans un ficher 'Test.csv' et tu devrais pouvoir le charger dans Excel comme
> je l'ai indiqué (je viens de le vérifier).
>
> Aski
>
> >> Salutatoi mfm21,
> >>
> >> Tu as donc déclaré :
> >>
> >>> Bonjour
> >>>
> >>> J'essaye de charger un .csv dans Excel à partir de VB6.
> >>> Le chargement se fait, mais sans tenir compte des séparateur ";"
> >>> donc tout est dans la 1ère colonne.
> >>
> >> J'ai maintes fois créé des fichiers texte au format CSV.
> >> C'est une excellente solution pourvu qu'on évite si possible,
> >> d'utiliser la virgule comme séparateur décimal.
> >> Ces fichiers s'ouvent directement en double-cliquant dessus ou en
> >> ouvrant comme fichier au format texte (CSV).
> >> Si on utilise la seconde solution, la virgule peut être utilisée
> >> comme séparateur décimal.
> >> --
> >> Aski
>
>
>


Avatar
Aski
Salutatoi mfm21,

Tu as donc déclaré :

J'ai trouvé quelque chose d'intéressant:
si j'enlève le paramètre "message DDE" dans les options avancées de
l'extension csv dans l'explorateur (outilsoptions des dossierstypes
de fichiers), le lancement par double-clic charge bien Excel en
tenant compte des points-virgules.
C'est déjà bien, j'aimerais maintenant faire l'équivallent en codant
dans VB.



Dans mes options avancées, je n'ai pas message DDE. Je n'ai rien modifié.
Côté Excel dans VB je n'ai jamais codé.
La seule chose que j'ai faite est d'enregistrer ou de lire (et décoder) des
fichiers CSV justement pour éviter de travailler avec le composant Excel..
Avatar
mfm21
Ok, tant pis.
Merci pour ton aide.
--
Cordialement,
mfm21.


"Aski" a écrit :

Salutatoi mfm21,

Tu as donc déclaré :

> J'ai trouvé quelque chose d'intéressant:
> si j'enlève le paramètre "message DDE" dans les options avancées de
> l'extension csv dans l'explorateur (outilsoptions des dossierstypes
> de fichiers), le lancement par double-clic charge bien Excel en
> tenant compte des points-virgules.
> C'est déjà bien, j'aimerais maintenant faire l'équivallent en codant
> dans VB.

Dans mes options avancées, je n'ai pas message DDE. Je n'ai rien modifié.
Côté Excel dans VB je n'ai jamais codé.
La seule chose que j'ai faite est d'enregistrer ou de lire (et décoder) des
fichiers CSV justement pour éviter de travailler avec le composant Excel..





Avatar
Aski
Salutatoi mfm21,

Tu as donc déclaré :

Ok, tant pis.
Merci pour ton aide.



De rien.
Je suis en train d'essayer de convertir un programme VB 6 en VB 2005. Ce
n'est pas de la tarte. %-(