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

Ouverture par macro d'un fichier .CSV

5 réponses
Avatar
JPB
Bonjour à tous,

J'ai téléchargé un fichier au format .CSV.
Je l'ouvre sans aucun problème, le résultat est correct.
Maintenant j'aimerais ouvrir ce fichier depuis une macro.
Lors de la création (de l'enregistrement) de la macro le fichier s'ouvre
proprement également.
Par contre lors de l'exécution de la macro j'obtient une suite de ligne ou
le texte est entre guillemet et séparé par des points virgules.
Exemple "texte 1";"texte2" ;"texte ... le système n'a pas mis les
éléments dans les cellules ???

Je reste un peu perplexe devant cela.
Merci pour votre aide

Jean-Pierre

5 réponses

Avatar
ClémentMarcotte
Bonjour,

Excel est un hospice d'ignare pour ouvrir les fichiers texte. Il comprend
peut-être vite, mais il faut lui expliquer très longtemps.

Une/des solution(s) par là:


http://groups.google.com/group/microsoft.public.fr.excel/msg/1007759e1d215822?q=readline+excel+97+split+group:microsoft.public.fr.excel+author:clement.marcotte%40sympatico.ca&hl=fr&lr=&scoring=d&rnum=1

La version sans split() devrait marcher sur toutes les versions d'Excel
depuis Excel 1997 et l'autre sur toutes les versions depuis Excel 2000


"JPB" a écrit dans le message de
news:
Bonjour à tous,

J'ai téléchargé un fichier au format .CSV.
Je l'ouvre sans aucun problème, le résultat est correct.
Maintenant j'aimerais ouvrir ce fichier depuis une macro.
Lors de la création (de l'enregistrement) de la macro le fichier s'ouvre
proprement également.
Par contre lors de l'exécution de la macro j'obtient une suite de ligne ou
le texte est entre guillemet et séparé par des points virgules.
Exemple "texte 1";"texte2" ;"texte ... le système n'a pas mis les
éléments dans les cellules ???

Je reste un peu perplexe devant cela.
Merci pour votre aide

Jean-Pierre




Avatar
michdenis
Bonjour JPB,

Voici une solution publiée ici même par Frédéric Sigonneau :

'-------------------------------
Tu pourrais essayer la méthode TextToColumns pour ouvrir ton fichier :

Sub CSVOpener()
'd'après P. Penet, mpfe
Dim wb As Workbook, NomFich

With Application
NomFich = Application.GetOpenFilename("Fichiers texte,*.csv;*.txt")
If NomFich = False Then Exit Sub
Set wb = .Workbooks.Open(NomFich)
wb.Sheets(1).Columns(1).TextToColumns Range("A1"), , , False, , True
End With

End Sub
'-------------------------------


Salutations!


"JPB" a écrit dans le message de news:
Bonjour à tous,

J'ai téléchargé un fichier au format .CSV.
Je l'ouvre sans aucun problème, le résultat est correct.
Maintenant j'aimerais ouvrir ce fichier depuis une macro.
Lors de la création (de l'enregistrement) de la macro le fichier s'ouvre
proprement également.
Par contre lors de l'exécution de la macro j'obtient une suite de ligne ou
le texte est entre guillemet et séparé par des points virgules.
Exemple "texte 1";"texte2" ;"texte ... le système n'a pas mis les
éléments dans les cellules ???

Je reste un peu perplexe devant cela.
Merci pour votre aide

Jean-Pierre
Avatar
JPB
Merci à tous les deux pour vos suggestions.
Malheureusement la première solution butte sur une erreur à la ligne
Set lefichier = fichier.openastextstream(forreading)
et la deuxième proposition ne fonctionne pas dans mon cas.

Mais je crois que je me suis mal exprimé dans mon premier post:
Mon fichier .csv s'ouvre correctement si je clique 2 fois dessus depuis
l'explorateur ou depuis excel, c'est uniquement lorsque je l'ouvre depuis
une macro excel que les éléments ne se mettent pas en place.
Pourquoi une différence entre ouverture par macro et double clic ?

merci pour votre aide


"JPB" a écrit dans le message de news:

Bonjour à tous,

J'ai téléchargé un fichier au format .CSV.
Je l'ouvre sans aucun problème, le résultat est correct.
Maintenant j'aimerais ouvrir ce fichier depuis une macro.
Lors de la création (de l'enregistrement) de la macro le fichier s'ouvre
proprement également.
Par contre lors de l'exécution de la macro j'obtient une suite de ligne ou
le texte est entre guillemet et séparé par des points virgules.
Exemple "texte 1";"texte2" ;"texte ... le système n'a pas mis les
éléments dans les cellules ???

Je reste un peu perplexe devant cela.
Merci pour votre aide

Jean-Pierre



Avatar
michdenis
Bonjour JPB,

Le meilleur moyen pour éviter d'avoir une réponse satisfaisante... c'est de répliquer comme tu l'as fait.... sans aucune précision
sur ce qui ne fonctionnait pas ...sans avoir donné une idée du type de données que contenait ton fichier ...etc ! Ce n'est pas sûr
que les devins ont besoin d'utiliser excel pour obtenir réponse à leurs questions. !!!!!!!!!!!!

| c'est uniquement lorsque je l'ouvre depuis une macro excel que les éléments ne se mettent pas en place.

* Pour ouvrir un fichier CSV avec une macro... si tu as une version excel 2002 ou 2003, tu peux utiliser ceci et tu dois te servir
du paramêtre Local:=True

Workbooks.Open(FileName, UpdateLinks, ReadOnly, Format, Password, WriteResPassword, IgnoreReadOnlyRecommended, Origin, Delimiter,
Editable, Notify, Converter, AddToMru, Local, CorruptLoad)

Le paramêtre "local" signifie : (aide excel)
Local Argument de type Variant facultatif. La valeur True enregistre les fichiers en fonction de la langue de Microsoft Excel (y
compris les paramètres du Panneau de configuration). La valeur False (valeur par défaut) enregistre les fichiers en fonction de la
langue de Visual Basic pour Applications (VBA) (qui est généralement l'anglais des États-Unis, sauf si le projet VBA où
Workbooks.Open est exécuté est un ancien projet VBA XL5/95 de niveau international)


Si tu as une vieille version d'excel ;-)

Tu dois utiliser une macro comme celle que je t'ai proposée. Attention, selon le type de données qu'il y a dans ton fichier csv
comme des champs "Date", des données numériques avec divers séparateurs de millier et décimale, il faut souvent ajouter quelques
lignes de code pour obtenir une copie des données conforme à ses désirs.

Pour ce faire, si tu regardes dans l'aide la méthode "TextToColumns", cela devrait te donner une petite idée des paramêtres à
identifier!

'------------------------------------
Sub CSVOpener()
'd'après P. Penet, mpfe
Dim wb As Workbook, NomFich

With Application
NomFich = Application.GetOpenFilename("Fichiers texte,*.csv;*.txt")
If NomFich = False Then Exit Sub
Set wb = .Workbooks.Open(NomFich)
wb.Sheets(1).Columns(1).TextToColumns Range("A1"), , , False, , True
End With

End Sub
'------------------------------------


Salutations!




"JPB" a écrit dans le message de news:
Merci à tous les deux pour vos suggestions.
Malheureusement la première solution butte sur une erreur à la ligne
Set lefichier = fichier.openastextstream(forreading)
et la deuxième proposition ne fonctionne pas dans mon cas.

Mais je crois que je me suis mal exprimé dans mon premier post:
Mon fichier .csv s'ouvre correctement si je clique 2 fois dessus depuis
l'explorateur ou depuis excel, c'est uniquement lorsque je l'ouvre depuis
une macro excel que les éléments ne se mettent pas en place.
Pourquoi une différence entre ouverture par macro et double clic ?

merci pour votre aide


"JPB" a écrit dans le message de news:

Bonjour à tous,

J'ai téléchargé un fichier au format .CSV.
Je l'ouvre sans aucun problème, le résultat est correct.
Maintenant j'aimerais ouvrir ce fichier depuis une macro.
Lors de la création (de l'enregistrement) de la macro le fichier s'ouvre
proprement également.
Par contre lors de l'exécution de la macro j'obtient une suite de ligne ou
le texte est entre guillemet et séparé par des points virgules.
Exemple "texte 1";"texte2" ;"texte ... le système n'a pas mis les
éléments dans les cellules ???

Je reste un peu perplexe devant cela.
Merci pour votre aide

Jean-Pierre



Avatar
ClémentMarcotte
ajoute une ligne:

const forreading = 1


"JPB" a écrit dans le message de
news:
Merci à tous les deux pour vos suggestions.
Malheureusement la première solution butte sur une erreur à la ligne
Set lefichier = fichier.openastextstream(forreading)
et la deuxième proposition ne fonctionne pas dans mon cas.

Mais je crois que je me suis mal exprimé dans mon premier post:
Mon fichier .csv s'ouvre correctement si je clique 2 fois dessus depuis
l'explorateur ou depuis excel, c'est uniquement lorsque je l'ouvre depuis
une macro excel que les éléments ne se mettent pas en place.
Pourquoi une différence entre ouverture par macro et double clic ?

merci pour votre aide


"JPB" a écrit dans le message de news:

Bonjour à tous,

J'ai téléchargé un fichier au format .CSV.
Je l'ouvre sans aucun problème, le résultat est correct.
Maintenant j'aimerais ouvrir ce fichier depuis une macro.
Lors de la création (de l'enregistrement) de la macro le fichier s'ouvre
proprement également.
Par contre lors de l'exécution de la macro j'obtient une suite de ligne
ou


le texte est entre guillemet et séparé par des points virgules.
Exemple "texte 1";"texte2" ;"texte ... le système n'a pas mis les
éléments dans les cellules ???

Je reste un peu perplexe devant cela.
Merci pour votre aide

Jean-Pierre