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 :

Lancement automatique d'une macro à l'ouverture d'un CSV


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 92
    Points : 48
    Points
    48
    Par défaut Lancement automatique d'une macro à l'ouverture d'un CSV
    Bonjour,

    Mon besoin : j'extraie un fichier csv depuis un site, j'ai configuré le navigateur pour qu'il l'ouvre automatiquement, et je voudrais que dès qu'il est ouvert dans Excel une macro se lance pour traiter ce fichier.

    Est-ce possible ?

    Merci

  2. #2
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 412
    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 412
    Points : 16 254
    Points
    16 254
    Par défaut
    Bonjour

    De façon générale on déconseille d'ouvrir un csv avec Excel qui le cuisine mal à la sauce US

    Il est préférable de l'importer afin de paramétrer le format notamment de date et de nombre. Avec 365 PowerQuery est l'outil par excellence et c'est le fichier contenant la requête qui doit s'ouvrir.

    Le fichier change-t-il de nom ou de dossier à chaque extraction ?
    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é...

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 92
    Points : 48
    Points
    48
    Par défaut
    Oui, je sais bien, je suis limité par les directives et je dois utiliser des outils souvent peu adaptés :/

    Mais si vous me dites qu'il n'y a pas moyen de déclencher une macro "générique" à l'ouverture de n'importe quel fichier excel (dont csv dans ce cas là), ça m'arrange aussi, hein, j'aurais une réponse à donner

  4. #4
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 412
    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 412
    Points : 16 254
    Points
    16 254
    Par défaut
    RE

    PowerQuery fait partie d'excel donc je ne saisis pas ta réponse et tu n'as pas répondu aux questions...
    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
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 92
    Points : 48
    Points
    48
    Par défaut
    Oublions la requête et le fichier csv.

    Est-ce qu'il y a un moyen de déclencher une macro automatiquement à l'ouverture d'un fichier excel quelconque (donc sans macro) et d'afficher par exemple son nom ?

  6. #6
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 412
    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 412
    Points : 16 254
    Points
    16 254
    Par défaut
    RE

    Il faut créer un module de classe dans un xlam toujours ouvert par le lancement d'Excel ou dans le classeur de macro personnelles, définir une classe et en définir et gérer les évènements
    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é...

  7. #7
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 947
    Points
    55 947
    Billets dans le blog
    131
    Par défaut
    Salut.

    Dans un xlam que tu places dans le XLSTART ou dans le fichier PERSO.XLSB placé lui aussi dans le XLSTART, tu peux placer le code suivant dans le module ThisWorkbook:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Option Explicit
     
    Dim WithEvents App As Excel.Application
     
    Private Sub App_WorkbookOpen(ByVal Wb As Workbook)
      MsgBox Wb.Name
    End Sub
     
    Private Sub Workbook_Open()
      Set App = Excel.Application
    End Sub
    Dès lors, à chaque ouverture de fichier Excel, tu en récupères le nom, et tu peux tester si c'est un csv ou autre grâce à la variable wb qui pointe vers le classeur que tu viens d'ouvrir. Il faut toutefois noter qu'en cas de plantage de code, la variable App risque d'être vidée et qu'il faudra tout relancer (fermer complètement Excel) ou réactiver la macro qui initialise App.


    Par cette approche, tu peux en fait gérer les évènements d'application

    Nom : 2021-05-09_105358.png
Affichages : 73
Taille : 71,1 Ko
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  8. #8
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 412
    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 412
    Points : 16 254
    Points
    16 254
    Par défaut
    Bonjour Pierre

    C'est effectivement plus simple que ce que j'ai dans un xlam et évite le module de classe
    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é...

Discussions similaires

  1. Lancement automatique d'une macro à l'ouverture d'Outlook ?
    Par maelrsn dans le forum VBA Outlook
    Réponses: 6
    Dernier message: 09/12/2021, 15h49
  2. lancement automatique d'une macro
    Par deubelte dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 18/07/2008, 10h58
  3. lancement automatique d'une macro à partir d'une extraction de BDD
    Par SCHOLLERF dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 09/10/2007, 07h45
  4. Réponses: 1
    Dernier message: 04/05/2007, 11h59
  5. [VBA-E] Lancement automatique d'une macro (débutante)
    Par pom_poir dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 28/11/2005, 17h57

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