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 :

utiliser une macro sur plusieurs fichiers


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 117
    Par défaut
    Bonjour,
    je cherche comment je pourrais avoir ma macro visible dans mes documents.(par exemple)
    Pour le moment, ma macro est dans un fichier excel et il faudrait donc que je l'exporte dasn mes documents non?

    Je veux affecter n'importe quel fichier excel à cette macro!
    Par exemple, je voudrais faire glisser mon fichier sur cette macro et elle s'éxécute ! C'est possible ?

    Je suis un peu perdu là,
    Si je ne me suis pas bien exprimé ou que vous avez des précisions à me demander, pas de problème
    J'utilises office 2007,
    Cordialement.

    J'espère que se sera mieux expliquer ainsi

    je souhaite placer dans un classeur "exemple.xls" (qui sera ouvert) un liste de différentes macro qui pourront agir sur d'autres classeur qui seront fermés.
    A savoir, lorsque j'ouvre "exemple.xls" et que j'execute le code "macro1" il puisse agir sur un autre classeur en l'occurence : "fichier.xls".
    Je souhaiterai pouvoir executer la macro sans avoir a ouvrir le classeur "fichier".
    merci encore

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 117
    Par défaut
    bonjour tlm,
    j'ai exporter mon module dans mes documents et j'obtiens donc Module2.bas.
    Est-il possible, qu'en ouvrant n'importe quel fichier excel nous intéressant dans n'importe quel répertoire, à l'ouverture, on éxecute automatiquement la macro ?
    Ou alors faut-il que tous les fichiers soient dans le même repértoire ?
    si vous avez quelques pistes, je suis preneur,
    merci de votre aide.
    cdlt

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    633
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 633
    Par défaut
    Bonjour

    Les fichier .bas ne servent que pour l’import et l’export ce qui t’obligerais à créer un bout de code dans tout tes fichiers qui importerais et utiliserais tes macro, a mon avis ce n’est pas le but recherché.

    Je vois deux méthodologies pour ce que tu veux faire.

    1) Dans tes macros du fichier exemples.xls tu prévois d’ouvrir, de faire le traitement et de refermer tes fichiers.xls

    2) Comme ton fichier exemple.xls reste ouvert, les macro restent utilisable sur un classeur que tu ouvres par la suite.
    Exemple : ouvrir exemple.xls puis ouvrir fichiers.xls (qui sera le classeur actif), utiliser les macros dont tu as besoin puis refermer fichier.xls




    Pour ces deux contextes il faut définir quel seront réellement tes besoins car plus on veut ce simplifier la vie plus il faut automatiser les taches.

    Quelques idées.

    Si tu as beaucoup de macro il peut être intéressant d’avoir un menu dans lequel tu en trouves la liste (du même style que le menu Fichier avec ses sous menu)

    Prévoir des macros qui précise ou non le nom du classeur

    Prévoir la création d’une liste de tous les classeurs sur lesquels tu auras à travailler en les recherchant de manière récursive pour pouvoir en sélectionner un ou plusieurs dans une ListBox.

    Etc…

    Et pour tous ces cas en recherchant sur le site tu auras des exemples.

    Bon courage

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 117
    Par défaut
    bonjour zyhack,
    je te remercie pour ces informations et idées (t'as raison, du coup, je ne pense pas que mon exportation soit utile )
    Bon ben je vais chercher (encore) mais avec tes idées, j'espère trouver,
    bonne journée !

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 117
    Par défaut
    j'ai cherché et je n'ai trouvé que ceci dans le forum (je cherche peut-être pas bien mais je trouve pas )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.dialogs.item(xlDialogOpen).show
    Je l'ai mis juste après mon public sub macro()
    Sa me permet d'aller récupérer mon fichier mais le code ne s'applique pas par la suite.
    Cdlt

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    633
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 633
    Par défaut
    Petit code pour t'expliquer comment choisir un fichier, executer du code puis fermer et enregistrer le fichier

    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
    Sub test()
     Const type_fichier As String = "tous fichiers, *.*"
     
      'Choisir un fichier
      FichierChoisi = Application.GetOpenFilename("Fichiers Excel, *.xls")
      If FichierChoisi = "" Then Exit Sub
     
      'ouvrir le fichier
      Workbooks.Open (FichierChoisi)
     
      'traitement que tu desire faire
      Sheets(1).Range("A1") = "test2"
     
      'puis à la fin fermer et enregistrer le fichier
      ActiveWorkbook.Close savechanges:=True
    End Sub

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 02/08/2017, 16h55
  2. [XL-2007] utiliser une macro sur plusieurs feuilles
    Par revans dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 23/06/2012, 14h20
  3. Réponses: 1
    Dernier message: 11/02/2011, 14h14
  4. Creer un macro qui verifie une info sur plusieur fichier excel
    Par Esmax666 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 08/07/2009, 16h42
  5. Réponses: 4
    Dernier message: 03/12/2004, 11h18

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