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

Sator1 30 Messages postés vendredi 27 août 2004Date d'inscription 18 août 2008 Dernière intervention - 31 mai 2008 à 15:21 - Dernière réponse : Sator1 30 Messages postés vendredi 27 août 2004Date d'inscription 18 août 2008 Dernière intervention
- 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
Afficher la suite 

Votre réponse

13 réponses

Meilleure réponse
Sator1 30 Messages postés vendredi 27 août 2004Date d'inscription 18 août 2008 Dernière intervention - 6 juin 2008 à 16:34
3
Merci
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

Merci Sator1 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de Sator1
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 31 mai 2008 à 16:20
0
Merci
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)
Commenter la réponse de cs_Jack
cs_MPi 3877 Messages postés mardi 19 mars 2002Date d'inscription 23 août 2018 Dernière intervention - 31 mai 2008 à 16:25
0
Merci
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
Commenter la réponse de cs_MPi
mortalino 6812 Messages postés vendredi 16 décembre 2005Date d'inscription 21 décembre 2011 Dernière intervention - 31 mai 2008 à 16:35
0
Merci
salut,

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

@++

le mystérieux chevalier,"Provençal, le gaulois"
Commenter la réponse de mortalino
Sator1 30 Messages postés vendredi 27 août 2004Date d'inscription 18 août 2008 Dernière intervention - 1 juin 2008 à 00:35
0
Merci
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...
Commenter la réponse de Sator1
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 2 juin 2008 à 01:21
0
Merci
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)
Commenter la réponse de cs_Jack
Sator1 30 Messages postés vendredi 27 août 2004Date d'inscription 18 août 2008 Dernière intervention - 2 juin 2008 à 01:44
0
Merci
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 
Commenter la réponse de Sator1
cs_MPi 3877 Messages postés mardi 19 mars 2002Date d'inscription 23 août 2018 Dernière intervention - 2 juin 2008 à 02:17
0
Merci
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
Commenter la réponse de cs_MPi
Sator1 30 Messages postés vendredi 27 août 2004Date d'inscription 18 août 2008 Dernière intervention - 3 juin 2008 à 14:33
0
Merci
MPi dis moi pourquoi j'ai une utilisation incorect de NEW dataobjet???
merci d'or et déjà
Commenter la réponse de Sator1
cs_MPi 3877 Messages postés mardi 19 mars 2002Date d'inscription 23 août 2018 Dernière intervention - 3 juin 2008 à 22:47
0
Merci
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
Commenter la réponse de cs_MPi
Sator1 30 Messages postés vendredi 27 août 2004Date d'inscription 18 août 2008 Dernière intervention - 4 juin 2008 à 01:08
0
Merci
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
Commenter la réponse de Sator1
cs_MPi 3877 Messages postés mardi 19 mars 2002Date d'inscription 23 août 2018 Dernière intervention - 4 juin 2008 à 01:57
0
Merci
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
Commenter la réponse de cs_MPi
Sator1 30 Messages postés vendredi 27 août 2004Date d'inscription 18 août 2008 Dernière intervention - 4 juin 2008 à 01:59
0
Merci
Ok je te remercie infiniment....

je regarde pour ...

@+ Sator
Commenter la réponse de Sator1

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.