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 :

Macro création automatique de connexions vers des fichiers CSV


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 3
    Par défaut Macro création automatique de connexions vers des fichiers CSV
    Bonjour à tous,
    J'ai un problème que je n'arrive pas à résoudre, j'ai cherché sur différents forums sans trouver de réponses.
    Voici mon problème:
    Je souhaiterai automatiser la création de connexions entre mon classeur et mes fichiers contenant les données (ce sont des fichiers CSV), pour cela je souhaiterai si possible créer une macro qui créerait les connexions automatiquement.
    J'ai utilisé l'enregistreur automatique de macro et en modifiant légèrement le code, j'ai obtenu ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks(ThisWorkbook.Name).Connections.AddFromFile "C:\Users\.....\fichier.csv", True, False
    Le problème de ce code est qu'il me redirige vers la page Assistant Importation de Texte pour que j'indique le séparateur, que les données ont un en-tête ... ça n'a donc presque aucune différence avec la création manuel.
    Mes fichiers CSV ayant tous le même séparateur, et ayant tous comme première ligne un en-tête, serait-il possible de modifier la ligne de code pour ajouter ces paramètres et ainsi que la connexion soit créée sans être redirigé vers l'Assistant Importation de Texte?
    Si ce n'est pas possible que me conseillez-vous de faire pour ne pas faire toutes les connexions à la main?

    Merci d'avoir pris le temps de me lire.

  2. #2

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 3
    Par défaut
    Bonsoir,

    Merci pour votre réponse, mais si j'ai bien compris le code écris sur le liens que vous avez indiquez, cela va remplir une feuille hors ce que je veux faire c'est l'équivalent de Données > importer données externes > choisir le fichier > Delimiter, mes données ont un en tete > séparateur Autre "|" > ajouter les données au modèle de données, ,ne créer que la connexion

    De plus, mes fichiers CSV comportent plusieurs millions de lignes (plus que la capacité d'une feuille) et à partir de la connexion je créerai un TCD qui devra s'actualiser lorsque les fichiers CSV seront modifiés (j'aurais peut-être du le dire dans mon sujet)

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 3
    Par défaut
    Bonsoir,
    Je viens de tester le code suivant mais ça ne fonctionne toujours pas, je suis toujours redirigé vers l'Assistant Importation de Texte

    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
     
    Public Sub ConnexionAutmomatique()
     
        Dim StrNomClasseur As String
     
        StrNomClasseur = StrNomClasseur = ThisWorkbook.Name
     
        With Workbooks(StrNomClasseur).Connections.AddFromFile("C:\Users\.....\fichier.csv", True, False).TextConnection
                .TextFilePromptOnRefresh = False
                .TextFilePlatform = xlWindows
                .TextFileStartRow = 1
                .TextFileParseType = xlDelimited
                .TextFileTextQualifier = xlTextQualifierDoubleQuote
                .TextFileConsecutiveDelimiter = False
                .TextFileTabDelimiter = False
                .TextFileSemicolonDelimiter = False
                .TextFileCommaDelimiter = False
                .TextFileSpaceDelimiter = False
                .TextFileOtherDelimiter = "|"
                .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
                .TextFileDecimalSeparator = "."
                .TextFileTrailingMinusNumbers = True
            End With
    End Sub
    Si quelqu'un aurait un début de solution ça m'aiderait beaucoup

Discussions similaires

  1. Création automatique de raccourci vers un fichier
    Par xtof79 dans le forum Windows 7
    Réponses: 2
    Dernier message: 12/01/2017, 09h32
  2. [OL-2010] Création d'un lien vers un fichier dans Outlook
    Par mumu27 dans le forum Outlook
    Réponses: 1
    Dernier message: 24/06/2011, 12h20
  3. [XL-2007] Création automatique d'onglet depuis des fichiers
    Par grping dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 29/09/2009, 12h36
  4. Création automatique de listing de répertoires/fichiers
    Par BnA dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 05/10/2007, 19h45
  5. [Macro]exporter une table vers un fichier.csv
    Par samca dans le forum IHM
    Réponses: 2
    Dernier message: 24/04/2007, 21h25

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