[EXCEL & VBA]

Résolu
Bonjour,

je cherche à créer une macro qui me permettra d'importer le contenu de fichiers .csv (ou .xls si c'est pas possible pour .csv) dans un fichier excel.

Plus de precision:
-J'ai disons une quarantaine de fichier CSV avec mes données;
-je souhaite que ma macro aille cherche les données du premier fichier les copie dans une nouvelle feuille de mon classeur puis passe au fichier suivant dans une nouvelle feuille, etc...

Merci d'avance!
Si c'est pas clair n'hésitez pas a posez des questions

--
K.

6 réponses

  • Votes
  • Date
  • Date décroissante
  1. Modérateur
    Salut,
    Je te recommande vivement cette astuce, ma foi fort bien trouvée...
    1. Merci pour l'astuce ca m'aide beaucoup.
      Cela dit il y a un petit probleme, la separtion du csv ne se fait pas correctement.
      Il fait des separtions à chaque virgule aussi alors que j'ai réglé sur "point virgule".
    2. En plus, cela me crée des fichiers suplementaires alors qu'il me faut les données dans le meme classeur.
    3. Modérateur
      1- dans le code donné dans l'astuce il y a cette phrase :
      'Changer la , (virgule) par le séparateur de votre fichier
      il faut donc le faire...
      2- oui et à toi après de déplacer tes feuilles dans le même classeur (clic droit sur la feuille/déplacer ou copier choisir le même classeur de destination...
    4. J'ai bien changé la virgule par un point virgule mais il continue a faire des séparations sur les virgules...

      Je note pour les feuilles, je savais pas que l'on pouvais faire ca (gros noob d'excel inside).
    5. Modérateur
      Salut,
      Peux tu me copier/coller ici le code tel que tu l'as transformé?
      C'est cette ligne qu'il faut changer :
      TB = Split(.Cells(Lig, 1), ",")

      par :
      TB = Split(.Cells(Lig, 1), ";")
  2. Contributeur
    Bonjour à tout les deux,
    Désolé pour le retard, je n'ai vu ton message qu'à l'instant.
    En lisant le topic je ne vois pas d'exposé sur un quelquonque problème.
    Quel est-il ?
    A+
    1. Contributeur
      Bonjour Eric,
      Grrrr... Je m'habitue pas à ces postes cachés.
      Merçi.
      A+
    2. Modérateur
      Salut vous deux,
      Merci de vous pencher sur ce "cas".
      Cordialement,
      A+
  3. Bonjour lermite,

    Mon probleme est le suivant:
    je cherche à importer automatiquement des données se trouvant sur une grand quantité de fichier .csv dans le meme classeur EXCEL.
    Pijaku m'a dirigé vers une astuce, dont tu sembles etre l'auteur, qui permet la conversion de fichier csv en xls.

    Le probleme: la macro fait la sépartion sur les virgules malgré la modification dans le code pour qu'elle se fasse sur des points-virgules.
    Voila :]
    1. Contributeur
      J'ai déjà rencontré certains problème quand par exemple le séparateur est le ";" mais que dans le fichier il y a des ","
      Tu pourrais me passer un de tes fichiers, sur CiJoint.Com, le lien sur un poste suivant ou en MP si confidentiel ?

      L'expérience instruit plus sûrement que le conseil. (André Gide)
      Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
      1. Contributeur
        Y a une erreur dans le code ..
        En fait, ta dernière donnée n'est pas prise en compte ??? c! c'est bien ça, (mais de toutes façons faut changer)

                For i = 0 To UBound(TB) - 1
                    .Cells(Lig, i + 1) = TB(i)
                Next i

        PAR...
                For i = 0 To UBound(TB) 
                    .Cells(Lig, i + 1) = TB(i)
                Next i

        Faut enlever le -1,.
        Comprend pas, ce code à déjà été charger des centaines de fois et j'ai jamais eu de retour!!
        Si tu a encore un problème c'est le fichier Csv "réel" que je dois avoir car ce que tu m'a communiquer c'est déjà sur Excel.
        A+
        1. Moi non plus je comprends pas quand j'importe les données de manières manuelles sur Excel via la fonction Excel "données externes" cela fonction sans probleme...

          Sinon ce que je t'ai communiqué était un copier-coller d'un fichier .csv obtenu à la base par un tableau Excel, mais ca n'etait pas un fichier excel.

          Je me suis résolu à copier manuellement les données.
      2. Contributeur
        J'ai créer un fichier Csv à partir des données que tu m'a communiqué.
        J'ai tester la macro et à part le "-1" tout fonctionnait normalement.
        J'ai penser dans un premier temps que les guillemets placer à l'intérieur de la ligne pouvait influencer mais pas du tout
        Enfin bon, si tu change d'obption...
        A+
        L'expérience instruit plus sûrement que le conseil. (André Gide)
        Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
        1. Merci pour l'aide.