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 :

Récupération valeurs dans CSV


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Récupération valeurs dans CSV
    Bonjour à tous,
    Je débute dans le VB et pour mon travail j'ai besoin de faire un peu de VB

    J'ai besoin de récupérer des valeurs dans un fichier CSV pour ensuite les copier dans un fichier xls (tout en les classant)

    Mon problème est que quelle que soit la méthode utilisée pour l'ouverture de mon fichier CSV, je n'arrive pas à récupérer les colonnes de façon séparées : je n'aie qu'une colonne avec tous le texte et les séparateurs.

    Voici mon code :
    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
     
    Sub Copier()
     
        Dim Bilan As Workbook
        Dim oMelangeur As Worksheet, oLigne As Worksheet
     
     
        Set Bilan = ThisWorkbook
        Set sMelangeur = Bilan.Worksheets(1)
        Set sLigne = Bilan.Worksheets(2)
     
        Workbooks.OpenText Filename:="D:\Test\Melangeur.csv", Semicolon:=True
     
        'Workbooks.Open Filename:="D:\Test\Melangeur.csv"
     
        'Range("A2:G2").Copy Destination:=sMelangeur.Range("B5:H5")
     
     
    End Sub
    Avec les deux méthodes d'ouverture j'obtient le même résultat.
    Manque il des paramètres pour OpenText?

    En attente de votre réponse (très impatient d'en apprendre plus)!!
    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 546
    Points
    15 546
    Par défaut
    Le pb est que le point-virgule n'existe pas en anglais.
    Regarde ici, tu as les solutions pour Excel 97 à 2003
    Tu dis

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    merci beaucoup de ta réponse rapide

    maintenant je voudrais faire un copier collé dans une plage en utilisant une valeur qui m'indique la dernière ligne de mon tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
        MaxLigne = Range("A1").End(xlDown).Address
        MaxLigne = Range(MaxLigne).Row
        Ligne_Dest = 5
     
        For Ligne_Orig = 2 To MaxLigne
     
        Range("A & Ligne_Orig", "G & Ligne_Orig").Copy Destination:=sMelangeur.Range("B & Ligne_Dest", "H & Ligne_Dest")
        Ligne_Dest = Ligne_Dest + 1
     
        Next Ligne_Orig
    Mais apparemment il n'aime pas trop la façon dont je copie.
    Une idée

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    j'ai résolu mon problème en codant la boucle ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        For Ligne_Orig = 2 To MaxLigne
            Ligne_Dest = Ligne_Dest + 1
            Range("A" & Ligne_Orig, "G" & Ligne_Orig).Copy Destination:=sMelangeur.Range("B" & Ligne_Dest)
        Next Ligne_Orig
    Merci encore pour ton aide qui m'as fait gagner un temps très précieux

  5. #5
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Il est d'usage, ici, lorsqu'on a obtenu réponse à sa question, de cliquer sur le bouton , en bas de discussion.

    Merci

Discussions similaires

  1. Pb récupération valeur dans tagLib
    Par thecrafty dans le forum Struts 1
    Réponses: 5
    Dernier message: 20/06/2007, 18h13
  2. récupération valeur dans liste déroulante
    Par kumo dans le forum Modélisation
    Réponses: 9
    Dernier message: 26/05/2007, 19h47
  3. [PHP-JS] Erreur de syntaxe récupération valeur dans variable PHP
    Par sosophie dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 13/04/2007, 13h33
  4. [ASP.NET][C#]Récupération valeur dans une table
    Par johnny_hey dans le forum ASP.NET
    Réponses: 4
    Dernier message: 23/03/2007, 15h44
  5. [MySQL] Récupération valeurs dans la bdd
    Par Angelik dans le forum PHP & Base de données
    Réponses: 20
    Dernier message: 09/02/2007, 16h26

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