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 :

Execution d'une macro sans ouverture du fichier


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Avatar de mhamedbj
    Profil pro
    Inscrit en
    Février 2007
    Messages
    403
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 403
    Points : 554
    Points
    554
    Par défaut Execution d'une macro sans ouverture du fichier
    Re bonjour !!!

    Alors voila, j'ai un programme JAVA qui me génère un fichier excel avec plein de donnée et plein de cellules fusionnée et tout et tout (assez compliqué d'ailleurs j'ai pas accès à ce programme je ne récupère que le fichier de sortie .. bref)

    J'ai mis en place une macro qui met un forme ce fichier (mise en page, couleur, police) affin d'en faire un truc propre .. du coup tout le monde au boulot veulent ma macro, le truc c'est qu'ils ne doivent rien modifier sur le fichier avant d'avoir exécuter cette macro si non elle bug !!!

    Alors je suis ouvert à toutes sorte d'idée .. j'ai pensé a un truc qui exécute la macro sur un fichier directement sans l'ouvrir comme ça quand on l'ouvre il est déjà prêt ....mais bon je ne sais pas jusqu'où peut aller Excel donc ...

    PS: ne me dites pas de dire à mes collègues de ne rien toucher avant d'exécuter la macro je l'ai fait pour tant je n'arraite pas de reçevoir des coup de fil " hey elle marche pas !! " et ça commence à ....


    Cdt
    Mhamed

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Tu ne peux pas lancer une macro dans un fichier fermé;
    par contre, tu peux lancer la macro à l'ouverture du fichier. Suffit que tu la lances depuis la Macro Workbook_Open placée dans ThisWorkbook
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_Open()
          Call LaMacro
    End Sub
    Ta macro "LaMacro" étant dans un module standard... Ainsi elle s'exécutera avant toute modif dans les feuilles.
    A+

  3. #3
    Membre confirmé
    Avatar de mhamedbj
    Profil pro
    Inscrit en
    Février 2007
    Messages
    403
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 403
    Points : 554
    Points
    554
    Par défaut
    Citation Envoyé par ouskel'n'or Voir le message
    Ta macro "LaMacro" étant dans un module standard... Ainsi elle s'exécutera avant toute modif dans les feuilles.
    A+
    Excuse moi mais j'ai pas très bien compris.

    Voila moi comment je procède :

    J'ai un fichier XLS vide qui ne contient rien(que je laisse toujours vide), il s'appel MiseEnForme.XLS, dans le quel j'ai placé mon code, le nom de la fonction qui fait tout s'appelle Quand je reçoit un fichier du prog, disons fichier1.xls, alors j'ouvre mon fichier MiseEnForme.xls, je le laisse de côter, et je reviens à mon fichier1.xls, et quand je vais dans le menu Outil -> Macro -> Macros...

    j'ai accès à "MiseEnForme.xls!MiseEnFormeFichier" et je fais exécuter.


    Je ne vois pas comment appliquer ce que tu dis dsl

    Cdt
    Mhamed

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Ok. Tu as deux fichiers.
    Le fichier à mettre en forme est un autre fichier que celui qui contient la macro. C'est le fichier "fichier1.xls" de ton exemple.
    A ce que je comprends, tu ne peux pas placer de macro dans ce fichier (tu confirmes ?)
    Tu dois donc mettre en forme "fichier1.xls" à l'ouverture
    C'est bien ça ?
    Comment ouvres-tu ce classeur ?
    Peux-tu confirmer mes interrogations et répondre à ma question ?
    A+

  5. #5
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Points : 2 416
    Points
    2 416
    Par défaut
    Bonjour,
    Ce serrais pas plus simple de voir pourquoi ta macro bugge et de faire une détection d'erreur avec des on Error..
    A+

  6. #6
    Membre confirmé
    Avatar de mhamedbj
    Profil pro
    Inscrit en
    Février 2007
    Messages
    403
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 403
    Points : 554
    Points
    554
    Par défaut
    Citation Envoyé par ouskel'n'or Voir le message
    tu ne peux pas placer de macro dans ce fichier (tu confirmes ?)
    Je fais un copier coller du code à chaque fois ?, c'est ça placer une macro ?

    Pour moi une macro c'est un fichier XLS après je fais alt+F11 et après je fais un nouveau module et j'ecris mon code et je nomme mon fichier XLS comme le nom de la fonction et quand j'ai besion d'une macro, j'ouvre le fichier XLS correspondant

    Citation Envoyé par ouskel'n'or Voir le message
    Tu dois donc mettre en forme "fichier1.xls" à l'ouverture
    C'est bien ça ?
    oui

    Citation Envoyé par ouskel'n'or Voir le message
    Comment ouvres-tu ce classeur ?
    je reçoit un fichier XLS par mail .. quand je double clique dessus .... il s'ouvre ... oui alors je clique une fois et je tape 'Enter'

    Citation Envoyé par ouskel'n'or Voir le message
    Peux-tu confirmer mes interrogations et répondre à ma question ?
    Oui ... c'est ce que je viens de faire

    Citation Envoyé par ouskel'n'or Voir le message

    A+
    J'espère bien .. tu as l'ai de ty connaitre !

    Merci d'avance !

  7. #7
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Bon, ça pose un pb pour le formater à l'ouverture. D'où les questions suivantes :
    1 - Où se trouve ton fichier ? dans une répertoire, ok mais...
    2 - Se trouves-t-il toujours au même emplacement ?
    3 - As-tu d'autres fichiers dans cet emplacement ?
    4 - Si oui, qu'est-ce qui différencie leurs noms ?
    5 - Si impossible de le savoir, peut-on au moins le reconnaître par la date de création ? (le dernier créé du répertoire par exemple)
    Désolé de ne pas encore te répondre mais la solution passe par là...
    A+

  8. #8
    Membre confirmé
    Avatar de mhamedbj
    Profil pro
    Inscrit en
    Février 2007
    Messages
    403
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 403
    Points : 554
    Points
    554
    Par défaut
    Citation Envoyé par ouskel'n'or Voir le message
    1 - Où se trouve ton fichier ? dans une répertoire, ok mais...
    Mon fichier source me parvient par mail et le fichier de la macro je le garde dans mes documents

    Citation Envoyé par ouskel'n'or Voir le message
    2 - Se trouves-t-il toujours au même emplacement ?
    pour moi oui mais si je vais distribuer ça à tout le monde je ne sais pas ou ils vont le mettre

    Citation Envoyé par ouskel'n'or Voir le message
    3 - As-tu d'autres fichiers dans cet emplacement ?
    Non, et puis je redis que je ne le saurais pas pour les autres ...


    Citation Envoyé par ouskel'n'or Voir le message
    4 - Si oui, qu'est-ce qui différencie leurs noms ?
    Le nom de la fonction de la macro.... le nom du fichier est le même que celui de la macro qu'il contient .... ils ne sont pas pareils !

    Citation Envoyé par ouskel'n'or Voir le message
    5 - Si impossible de le savoir, peut-on au moins le reconnaître par la date de création ? (le dernier créé du répertoire par exemple)

    Je pourrais faire en sorte de lui donner un nom unique et de demander a tout le monde de garder ce nom de fichier si c important !



    Citation Envoyé par ouskel'n'or Voir le message
    Désolé de ne pas encore te répondre mais la solution passe par là...
    Tes questions sont bizzard mais j'espère que tu vas me sortir de la !!


    Citation Envoyé par ouskel'n'or Voir le message
    A+
    A+

    Merci

  9. #9
    Membre confirmé
    Avatar de mhamedbj
    Profil pro
    Inscrit en
    Février 2007
    Messages
    403
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 403
    Points : 554
    Points
    554
    Par défaut
    Je ne veux pas perturbé le cours de tes idées mais j'ai entendu dire qu'il ya un truc du genre (MAcro complémentaire) ... ça peut aider ça ?

  10. #10
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    J'ai une réponse mais elle dépendait de la possibilité que tu avais de donner toujours le même nom à ton fichier. Là, j'ai ma réponse, c'est oui. Par contre, il serait intéressant de le placer dans un même nom de répertoire pour chaque utilisateur. Peux-tu leur demander ça ?
    Dans le chemin de "mes documents", il y a le nom du "User", si tous le mettaient dans
    C:\Documents and Settings\Nom de l'utilisateur\Mes documents\Mes fichiers reçus\
    ou un autre mais toujours le même, ce serait encore mieux (on peut récupérer le nom de l'utilisateur avec Environ("USERNAME"))
    Auquel cas, tu n'ouvrirais pas le fichier dans l'explorateur mais depuis ta macro.
    Cela pourrait se faire à l'ouverture du fichier contenant ta macro. Et on en revient à la solution que je te proposais.
    Citation Envoyé par ousk'
    Tu peux lancer la macro à l'ouverture du fichier. Suffit que tu la lances depuis la Macro Workbook_Open placée dans ThisWorkbook
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_Open()
          Call LaMacro
    End Sub
    Je reviens donc là-dessus.
    Les trois lignes du dessus étant dans ThisWorkbook, tu places la macro d'ouverture de fichier1.xls et de formatage dans un module standard
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub LaMacro()
    Dim Rep
    Dim NomFich
    Rep = "C:\Documents and Settings\" & Environ("USERNAME") & "\Mes documents\Mes fichiers reçus\"
    NomFich = "fichier1.xls"
    Workbooks.open Filename:=Rep & NomFich
    Call TaMacroDeFormatage
    End sub
    Tu dis si ça peut suffire...
    A+

  11. #11
    Membre confirmé
    Avatar de mhamedbj
    Profil pro
    Inscrit en
    Février 2007
    Messages
    403
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 403
    Points : 554
    Points
    554
    Par défaut
    Bug !!! bug !!!!

    j'ai donné fichier1.xls comme exemple .... mais c un nom totalement aléatoire et il change de fichier en fichier !!

  12. #12
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Si tu ne peux pas mettre de macro dans le fichier envoyé, que tu ne sais pas où il se trouve, si tu ne connais pas son nom, alors je suis désolé, mais lancer une macro visant à modifier un fichier inconnu avant d'y avoir accès, je ne sais pas faire
    Tu vas devoir rédiger une fiche de procédure à l'intention des utilisateurs
    Peut-être quelqu'un a-t-il une méthode impliquant un test sur "l'apparition" d'un fichier d'une provenance définie... quant à moi, je ne l'ai pas. Désolé.
    Bonne chance

  13. #13
    Membre confirmé
    Avatar de mhamedbj
    Profil pro
    Inscrit en
    Février 2007
    Messages
    403
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 403
    Points : 554
    Points
    554
    Par défaut
    Merci pour tout en tout cas !!

  14. #14
    Membre confirmé
    Avatar de mhamedbj
    Profil pro
    Inscrit en
    Février 2007
    Messages
    403
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 403
    Points : 554
    Points
    554
    Par défaut Pour info....
    Voila ce que j'ai fait :

    J'ai fait un fichier XLA, macro complémentaire, qui se charge automatiquement avec excel et affiche un bouton dans la barre d'outils, et voila, le bouton et toujours dispo et dès qu'ils ouvrent leurs truc .. ils cliquent sur le petit bouton !!

    voila,

    PS : je me suis inspiré de ton code pour faire le menu, mais je voudrais changer l'icone et je n'ai pas compris ta remarque sur comment trouver les numéros des icones .. si tu pouvais ....

    merci !!

    au revoir !

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/04/2012, 17h01
  2. Executer une macro à l'ouverture
    Par moilou2 dans le forum VBA Access
    Réponses: 9
    Dernier message: 28/05/2008, 09h35
  3. exécution d'une macro sans ouvrir le fichier
    Par sash6 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 07/05/2008, 11h49
  4. Impossible d'executer une macro d'un autre fichier
    Par gilles06 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 06/02/2008, 19h36
  5. Lancer une macro à l'ouverture d'un fichier
    Par Tibaldus dans le forum VBA Word
    Réponses: 2
    Dernier message: 12/09/2007, 11h27

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