Fichier Csv à enregistrer sous format xls [Résolu]

Signaler
Messages postés
30
Date d'inscription
vendredi 27 août 2004
Statut
Membre
Dernière intervention
18 août 2008
-
Messages postés
30
Date d'inscription
vendredi 27 août 2004
Statut
Membre
Dernière intervention
18 août 2008
-
Bonjour, à tous! je cherche à enregistrer un fichier csv sous fichier exel, malgrès mes recherches je n'ai réussi qu'à avoir ligne par ligne, mais toutes les donnée d'une ligne sont séparé par un point virgule....

si quelqu'un sait comment faire se serait simpat merci d'avance

@+ Sator

13 réponses

Messages postés
30
Date d'inscription
vendredi 27 août 2004
Statut
Membre
Dernière intervention
18 août 2008

En fait j'ai fini par faire: une lecture normale du fichier... sans le passer en binaire, puis j'ai employé split, mais bon sachant le nombre de champs j'ai fais une boucle... puis enregistré sous excel, méthode ch... et longue... mais bon ça marche....

merci encore à tous

@+ Sator
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
68
Salut
Si tu cherches "csv xls" parmi les codes sources en VB6 dans la case Rechercher, il y a des sources qui font ce que tu cherches.

La première chose étant d'apprendre à chercher ...

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
J'essaierais en ouvrant le fichier CSV dans une session Excel (visible ou non) et en la sauvegardant sous le nouveau format.

Tu pourrais avoir une bonne partie du code en utilisant l'enregistreur de macro d'Excel.
Ensuite, il te restera à l'adapter en VB6 avec des objets Excel...

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
16
salut,

voir la méthode OpenText (et ses paramètres) de l'objet WorkBook

@++

le mystérieux chevalier,"Provençal, le gaulois"
Messages postés
30
Date d'inscription
vendredi 27 août 2004
Statut
Membre
Dernière intervention
18 août 2008

Pour Jack; Quand je dis: malgrès mes recherches.... c'est que j'ai cherché, donc quand je mets dans le champ destiné à cet effet "csv exel" je vous invite d'ailleur à faire cette recherche... et vous m'en dirai des nouvelles!!! sur codes, forum et tuto... donc l'on trouve plein de convertisseur exel => csv... des chose qui n'on rien à voir et des trucs qui marche pas... alors prendre la peine de répondre à un message, c'est très bien... mais faut-il encore qu'il soit constructif.
Quand aux autres je vous remercie, je regarde...
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
68
Salut Sator
En effet, les titres sont plus prometteurs que les codes.
Le seul convertisseur CSV vers XLS est trop spécifique.
J'ai regardé les 181 codes traitant de Excel et celui-ci peut t'expliquer les manipulations autour des fichiers excel au travers de VB6 : <cette source>
La partie lecture d'un fichier CSV n'est que de la manipulation de chaine avec tous les pièges que cela comporte :
- Choix du caractère de séparation (tabulation, point virgule, virgule, format fixe ...)
- Traitement des chaines qui contiendraient elles mêmes ce caractères (enbcadrées par des " )

Ta question, trop générique et globale, dit
"je n'ai réussi qu'à avoir ligne par ligne" : Après décryptage, cela voudrait dire que tu as déjà une structure qui fonctionne pour convertir une ligne en fichier XLS.
--> Où est ton problème pour avancer ?

"mais toutes les donnée d'une ligne sont séparé par un point virgule" : Est-ce que c'est comme ça que ton fichier CSV est structuré ou bien quand tu arrives à lire une seule ligne, cela ne fonctionne que si c'est un point-virgule ?

Tu n'es pas clair et pas suffisemment précis.

Rappel : le site n'a pas vocation à fournir des codes tout fait, mais à aider les membres à résoudre des problèmes de programmation.
Suffit donc d'exposer clairement là où tu bloques, ce que tu as déjà fait ...

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
30
Date d'inscription
vendredi 27 août 2004
Statut
Membre
Dernière intervention
18 août 2008

Oui effectivement comme tu dis c'est un peut générique comme question, En fait je prends un fichier sur internet "http://www.fdjeux.com//generated/dyn/euromillions/euromillions.zip"
Je le dézip et je me retrouve avec un fichier csv, je veux le transphormer en fichier Xls mais quand je fais un ouvrir avec exel, je me retrouve avec une colonne A bien remplie, pleins de choses séparé par des ";" et une colonne B vide.... J'aimerai dans un premier temps les mettres dans un fichier Exel, pour les transvaser par la suite; Après divers manipulations (Statistiques) dans un fichier access, en fait si je veux le convertir en exel c'est pour pouvoir travailler case par case... plutôt que de lire toute la ligne, et créer des variables à l'envolé ....

Bref, je cherchais un truc du genre Save Fichier Cvs to Fichier xls , séparateur...

Je te remercie pour tes recherches c'est vraiment simpat... et il me sera malgrès tout utile...

Merci @+ Sator 
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
Tu pourrais essayer quelque chose comme ceci
    Dim strTemp As String
    Dim MyDataObject As DataObject
   
    Open "C:\euromillions.csv" For Binary As #1
        strTemp = Space$(LOF(1))
        Get #1, , strTemp
       
        'remplacer les points-virgules par des TAB
        strTemp = Replace(strTemp, ";", vbTab)
       
        Set MyDataObject = New DataObject
        MyDataObject.SetText strTemp
       
        MyDataObject.PutInClipboard
        Range("A1").PasteSpecial

    Close #1
   
    MyDataObject.Clear
    Set MyDataObject = Nothing

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
Messages postés
30
Date d'inscription
vendredi 27 août 2004
Statut
Membre
Dernière intervention
18 août 2008

MPi dis moi pourquoi j'ai une utilisation incorect de NEW dataobjet???
merci d'or et déjà
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
Probablement parce que tu n'as pas créé de référence à MS Forms 2.0
J'avais oublié de le mentionner... désolé...
Ça prend cette référence pour avoir accès au DataObject

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
Messages postés
30
Date d'inscription
vendredi 27 août 2004
Statut
Membre
Dernière intervention
18 août 2008

Récapitulons... je suis sous VB6, je vais sous => projet=> référence => et là je cherche MS Forms 2.0/ et là ? si je ne l'ai pas? je fais comment?

Merci pour ton attention c'est vraiment sympat....

@+ Sator
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
Bon OK, je suis un peu perdu... Quand je vois le mot Excel, je me pense tout de suite sous l'environnement Office...

Si tu es sous VB6, tu pourrais passer par le ClipBoard, je pense. C'est un peu l'équivalent du DataObject. Sous Excel, le ClipBoard n'existe pas comme tel; il faut passer par le DataObject, quoiqu'il existe d'autres méthodes...

Une autre méthode serait de passer par les fonctions de base de lecture/écriture de fichiers.
Open "...csv" For Binary As #NumFile
        strTemp = Space$(LOF(NumFile))
        Get #NumFile, , strTemp

À ce moment-là strTemp contient le contenu du fichier.
Tu peux alors utiliser Replace pour changer le séparateur par un vbTab (si nécessaire), ouvrir une session Excel, ouvrir ou créer un classeur et coller le contenu de la variable en A1.

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
Messages postés
30
Date d'inscription
vendredi 27 août 2004
Statut
Membre
Dernière intervention
18 août 2008

Ok je te remercie infiniment....

je regarde pour ...

@+ Sator