IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Conversion fichier .csv en .xls


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 8
    Points : 3
    Points
    3
    Par défaut Conversion fichier .csv en .xls
    Bonjour,
    J'ai tous les jours des fichiers .csv mis à ma disposition. Je souhaiterai, via une macro, les transformer en .xls pour puovoir ensuite exploiter les valeurs que j'ai dedans.
    Probleme : quand je fais un Workbooks.Open Filename:= _
    "fichier.csv", j'ai toutesl es valeurs dans la 1ere colonne... je n'arrive pas à dire à ma macro de considérer le .csv comme un .xls classique et donc de me l'ouvrir comem un .xls...
    Please, help ?
    Merci d'avance !

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Avec VBA97, 2003 ou 2007, tu as des solution différentes. Pour VBA 97 ou 2003, regarde ici, tu as les solutions. Mais lis les explications
    A+

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Bonjour Ouskel'n'or !
    j'avais vu ce post... Je suis sous windows xp pro, quand je lance la macro avec name mon fichier .csv As fichier .xls j'obtiens tout de meme toutes mes valeurs dans la meme colonne.
    J'ai essayé de le contourner en faisaint via excel ouvrir fichier et en donnant les "" comme séparaeur, mais la je dis adieu aux liens hypetextes compris dans le ficiher csv qui ne se mettent pas a jour (j"obtiens #nom? à la place)...

  4. #4
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Jour Bon, un échantillon de tes fichiers "CSV" serait le bienvenu

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Rhaa ! Pas moyen de joindre le fichier ! Je vous met une image... (désolée)
    Si vous voulez plus de détails n'hésitez pas !
    Merci d'avance !
    Images attachées Images attachées  

  6. #6
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Pas de bras pas de chocolat

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Rhooo, c'est pas sympa ca ????? Siouplait ?

  8. #8
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Bis Repetita : un échantillon de tes fichiers "CSV" serait le bienvenu, càd des fichiers textes à importer sous Excel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Windows XP
    	Sélectionner le/les fichiers
    	Clic Droit : Envoyer vers "Dossier Copmpressé"
     
    Developpez.com
    	Options Supplémentaires
    		Gérer les Pieces Jointes
    			Ajouter un fichier à partir de votre ordinateur 
    				Parcourir
    				Envoyer
    		Fermer cette fenetre
    Enregistrer les Changements

  9. #9
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Bon, on reprend à zéro.
    Tu ouvres tes fichier en txt, comme n'est pas dit dans l'URL que je t'ai passé

    Tu connais le N° de colonne des liens Hypertextes -> Colonne 4
    Placer le lien dans une cellule sans dire à Excel que c'est un lien, Excel, ça l'aime pas ! Faut tout y dire à Excel
    Donc, pour placer les liens, tu vas devoir insérer les données de chaque ligne, colonne par colonne
    Je ne connais pas ton séparateur de données, je mets Tab, tu corrigeras...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Sub Test()
    Dim Ligne As String, Tablo as variant
    Dim Separateur, NoLig as integer, NoCol as integer
    Separateur = vbtab
    NoLig = 0 'si tu as un en-tête, NoLig = 1. Bref tu adaptes
        Open D:\Le rep\LeFichier.csv For Input As #1
        While Not EOF(1)
            Input #1, Ligne
            if Ligne <> "" then NoLig = NoLig + 1
            Tablo = Split(Ligne, separateur)
            For NoCol = 0 to Ubound(Tablo) -1
                 if NoCol = 3 then
                       ActiveSheet.Hyperlinks.Add(cells(NoLig, NoCol+1), Tablo(NoCol))
                    else
                       Cells(NoLig, NoCol+1) = Tablo(i)
                 endif
            Next
        Wend
        Close #1
    End Sub
    Pas testé, pisk tu veux pas nous passer ton fichier... Donc, sans filet.
    Tu peux tester pour nous ?
    A+

  10. #10
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Edit
    J'ai corrigé cette ligne qui contenait une erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        ActiveSheet.Hyperlinks.Add(cells(NoLig, NoCol+1), Tablo(NoCol))

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Dur dur...
    J'ai transcris ce que vous m'avez donné, mais la formule " ActiveSheet.Hyperlinks.Add(cells(NoLig, NoCol+1), Tablo(NoCol))" ne fonctionne pas...
    Deuxieme question, mes séparateurs sont des points virgules, mais je ne sais pas le dire en langage macro...
    Sinon j'ai compris l'idée de dire à Excel que j'ai des liens hypertextes, c'est déjà ca...



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    Sub Test()
    Dim Ligne As String, Tablo As Variant
    Dim Separateur, NoLig As Integer, NoCol As Integer
    Separateur = vbTab
    NoLig = 1 'si tu as un en-tête, NoLig = 1. Bref tu adaptes
       ' Open D:\Le rep\LeFichier.csv For Input As #1
     
    Sheets("hey").Select
    chemin = Range("C1").Value
     
    Open chemin & "20080229\Extraction_Qualite_20080229_3.csv" For Input As #1
        While Not EOF(1)
            Input #1, Ligne
            If Ligne <> "" Then NoLig = NoLig + 1
            Tablo = Split(Ligne, Separateur)
            For NoCol = 0 To UBound(Tablo) - 1
                 If NoCol = 3 Then
                ActiveSheet.Hyperlinks.Add(cells(NoLig, NoCol+1), Tablo(NoCol))
                    Else
                       Cells(NoLig, NoCol + 1) = Tablo(i)
                 End If
            Next
        Wend
        Close #1
    End Sub

  12. #12
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Est-ce que ActiveSheet est bien la feuille que tu veux utiliser pour y placer les données de ton csv ?
    Ton séparateur de données dans le csv est-il bien une tabulation ? Ce peut être un point-virgule, auquel cas tu mets
    Separateur = ";"
    Ouvre ton fichier avec un logiciel de texte (notepad ou Word) pour le vérifier
    A+

  13. #13
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Décidemment, je ne vais jamais y arriver...
    Mon séparateur est bien un point virgule, cependant separateur = ";" (jai aussi essayé Trim(";"), je n'ai pas ma séparation d'infos ce qui fait que Tablo(i) reste toujours égal à ce qui doit etre indiqué ds la 1ere colonne...
    J'ai également un rejet pour la formule qui donne les liens hypertextes (erreur de syntaxe) mais pas moyen de toruver l'erreur...
    Rhaaa !

  14. #14
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Citation Envoyé par Peachplume
    Mon séparateur est bien un point virgule,
    Alors remplace
    Separateur = vbTab
    par
    Bonne soirée

  15. #15
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Bonjour à tous !
    J'ai réussi à trouver une solution en rajoutant "tout simplement" l'instruction "local:=True" dans mon workbooks.Open Filename... et ca marche, mes fichiers .csv s'ouvrent correctement...

    Merci en tout cas pour m'avoir aidé dans ma recherche désespérée de solution !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Conversion de plusieurs fichiers csv en xls
    Par Akane69 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 08/07/2013, 17h23
  2. conversion d'un fichier csv en xls
    Par yandoka dans le forum Langage
    Réponses: 11
    Dernier message: 23/07/2007, 16h37
  3. conversion fichier txt en xls
    Par america1 dans le forum Excel
    Réponses: 2
    Dernier message: 22/05/2007, 22h23
  4. Conversion fichier txt en xls
    Par anisr dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/03/2007, 13h54
  5. Enregistrer un fichier ".CSV" en ".XLS"
    Par Isa31 dans le forum API, COM et SDKs
    Réponses: 6
    Dernier message: 13/03/2006, 14h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo