Fichier Csv à enregistrer sous format xls

Résolu
Sator1 Messages postés 30 Date d'inscription vendredi 27 août 2004 Statut Membre Dernière intervention 18 août 2008 - 31 mai 2008 à 15:21
Sator1 Messages postés 30 Date d'inscription vendredi 27 août 2004 Statut Membre Dernière intervention 18 août 2008 - 6 juin 2008 à 16:34
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

Sator1 Messages postés 30 Date d'inscription vendredi 27 août 2004 Statut Membre Dernière intervention 18 août 2008
6 juin 2008 à 16:34
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
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
31 mai 2008 à 16:20
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)
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
31 mai 2008 à 16:25
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
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
31 mai 2008 à 16:35
salut,

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

@++

le mystérieux chevalier,"Provençal, le gaulois"
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Sator1 Messages postés 30 Date d'inscription vendredi 27 août 2004 Statut Membre Dernière intervention 18 août 2008
1 juin 2008 à 00:35
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...
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
2 juin 2008 à 01:21
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)
0
Sator1 Messages postés 30 Date d'inscription vendredi 27 août 2004 Statut Membre Dernière intervention 18 août 2008
2 juin 2008 à 01:44
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 
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
2 juin 2008 à 02:17
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
0
Sator1 Messages postés 30 Date d'inscription vendredi 27 août 2004 Statut Membre Dernière intervention 18 août 2008
3 juin 2008 à 14:33
MPi dis moi pourquoi j'ai une utilisation incorect de NEW dataobjet???
merci d'or et déjà
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
3 juin 2008 à 22:47
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
0
Sator1 Messages postés 30 Date d'inscription vendredi 27 août 2004 Statut Membre Dernière intervention 18 août 2008
4 juin 2008 à 01:08
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
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
4 juin 2008 à 01:57
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
0
Sator1 Messages postés 30 Date d'inscription vendredi 27 août 2004 Statut Membre Dernière intervention 18 août 2008
4 juin 2008 à 01:59
Ok je te remercie infiniment....

je regarde pour ...

@+ Sator
0
Rejoignez-nous