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érer données de fichiers CSV sur mon XLSM


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Chargé Statistiques
    Inscrit en
    Septembre 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chargé Statistiques
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2018
    Messages : 2
    Points : 0
    Points
    0
    Par défaut Récupérer données de fichiers CSV sur mon XLSM
    Bonjour à tous,

    Par où commencer ?

    Je dois fournir un fichier (appelons le "Tableau de bord") qui permettra à des agents de visualiser de façon disons ergonomique le contenu de fichiers CSV.

    J'explique :

    Admettons il s'agit d'un camping:

    - Grâce à un petit logiciel lié aux compteurs électriques, on peut sélectionner le(s) emplacement(s) de caravanes et la durée (jour/heure de début et jour/heure de fin). Ainsi on génère un fichier CSV avec toutes les données liées à leurs consommations électriques.

    Ces fichiers CSV ont a chaque fois un nom différent qui correspond au nom du compteur et au jour J de la génération du fichier.
    exemple : Emplacement 01_20180829.csv puis Emplacement 02_20180829.csv etc etc...

    La lecture en l'état pour les agents n'est pas possible (tout en colonne A et chaque cellule contient une flopée d'infos séparées par des virgules).

    Je vous dis ce que j'ai créé, et la modification qu'on me demande et devant laquelle je sèche.

    J'ai prévu que les agents copient collent la colonne A dans un fichier à moi intitulé Tableau de Bord onglet 1. Puis grâce à une petite macro, quand ils cliquent sur un bouton, ça fait Donnes/Convertir/par virgules, ainsi j'ai une colonne par infos, puis ça me récupère les infos que je souhaite afficher dans un onglet 2.

    En l'état ça fonctionne parfaitement. Mais on me demande à ce que les agents n'aient même pas à faire le fameux 1er copier/coller de la colonne A du fichier CSV sur mon onglet 1 du Tableau de Bord.xlsm. Donc il faudrait que je trouve un procédé qui permette de récupérer la 1ère colonne du fichier CSV sur mon fichier à moi, sachant qu'en plus ils n'ont jamais le même nom de fichier et qu'en plus je vais transmettre "cet outil" sans que je connaisse le chemin d'accès sur lequel il sera posé (bien que les fichiers CSV arriveront dans le même répertoire que mon fichier TDB.xlsm).

    Merci par avance pour le coup de main,
    Bon aprem à tous,
    Eric.

  2. #2
    Membre averti
    Homme Profil pro
    Responsable des études
    Inscrit en
    Mars 2007
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2007
    Messages : 267
    Points : 367
    Points
    367
    Par défaut
    Bonjour,

    Avez vous regardé du coté de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveWorkbook.Queries.Add
    ? je passe par ça pour faire l'import de mes CSV.

    Le code démarre à l'ouverture de mon fichier excel mais j'ai la main sur le répertoire et le nom du fichier...
    Loi de l’Inertie de la Programmation de Dijkstra
    Si vous ne savez pas ce que votre programme est censé faire, vous feriez bien de ne pas commencer à l’écrire.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Chargé Statistiques
    Inscrit en
    Septembre 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chargé Statistiques
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2018
    Messages : 2
    Points : 0
    Points
    0
    Par défaut
    Merci Alex70 mais c'est ma faute, je n'ai pas précisé quelque chose. je ne suis pas expert dans l'utilisation des macros. En fait, pour créer mes macros, je clique tout simplement sur le bouton d'enregistrement de macro en bas à gauche, je fais ce que je veux qu'elle fasse et je rappuie pour couper l'enregistrement. Créer à proprement parler de la macro directement en passant par l'éditeur je sais pas faire.

  4. #4
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 421
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 421
    Points : 16 267
    Points
    16 267
    Par défaut
    Bonjour

    Sur 2007 c'est plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.QueryTables.Add
    ce qui correspond à Données, à partir du texte...

    Il faut définir le séparateur et éventuellement les formats des diverses colonnes.
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  5. #5
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par Sherito Voir le message
    En l'état ça fonctionne parfaitement. Mais on me demande à ce que les agents n'aient même pas à faire le fameux 1er copier/coller de la colonne A du fichier CSV sur mon onglet 1 du Tableau de Bord.xlsm. Donc il faudrait que je trouve un procédé qui permette de récupérer la 1ère colonne du fichier CSV sur mon fichier à moi, sachant qu'en plus ils n'ont jamais le même nom de fichier et qu'en plus je vais transmettre "cet outil" sans que je connaisse le chemin d'accès sur lequel il sera posé (bien que les fichiers CSV arriveront dans le même répertoire que mon fichier TDB.xlsm).
    Plutôt que d'utiliser une fenêtre pour sélectionner le fichier CSV, il serait beaucoup plus simple de laisser l'agent l'ouvrir par lui-même (l'Explorateur Windows est plus ergonomique qu'une fenêtre Ouvrir) et de lancer la macro en utilisant le fichier ouvert comme fichier par défaut, en le désignant par ActiveSheet comme source de la conversion.
    https://docs.microsoft.com/fr-fr/off...on.activesheet

    Pour le reste, l'enregistreur automatique de macro te fournira 80% du code.

    Citation Envoyé par Sherito Voir le message
    Merci Alex70 mais c'est ma faute, je n'ai pas précisé quelque chose. je ne suis pas expert dans l'utilisation des macros. En fait, pour créer mes macros, je clique tout simplement sur le bouton d'enregistrement de macro en bas à gauche, je fais ce que je veux qu'elle fasse et je rappuie pour couper l'enregistrement.
    Utiliser directement le code brut sorti de l'enregistreur automatique, c'est une TRES mauvaise idée.
    L'aide VBA Excel est très bien faite et permet d'accéder facilement à tout élément inscrit dans l'éditeur, de comprendre son fonctionnement et de l'adapter à son besoin.

    De plus, comme tout langage, le VBA impose d'étudier un minimum ses structures de base pour l'utiliser efficacement et sérieusement.

    Créer à proprement parler de la macro directement en passant par l'éditeur je sais pas faire.
    Fort heureusement, ça s'apprend.
    http://bidou.developpez.com/article/VBA/
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

Discussions similaires

  1. [XL-2016] Récupérer fichier .csv sur serveur ftp
    Par melange dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 26/09/2017, 16h22
  2. Récupérer automatiquement un fichier .csv sur serveur FTP
    Par oagi_jaheim dans le forum Général Conception Web
    Réponses: 1
    Dernier message: 13/09/2009, 18h19
  3. Réponses: 10
    Dernier message: 02/04/2007, 17h22
  4. Sortir un fichier csv sur base d une requete
    Par Freeman_80 dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 12/01/2005, 11h21
  5. Réponses: 2
    Dernier message: 14/05/2004, 12h55

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