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 :

Déploiement de Macro sur plusieurs fichiers


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Inscrit en
    Juin 2003
    Messages
    205
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Juin 2003
    Messages : 205
    Points : 56
    Points
    56
    Par défaut Déploiement de Macro sur plusieurs fichiers
    Bonjour,

    Suite à une "mauvaise utilisation" d'un utilisateur qui a passé le mode de calcul "d'automatique" en "sur ordre" dans un fichier, ceci c'est propagé dans différents fichiers (que je ne connais pas) voir ici pour plus d'info sur la propagation.

    J'ai trouver comment le corriger sur 1 fichier en faisant une macro et en mettant Application.Calculation = xlAutomatic dans thisworkbook_open.

    J'aimerai savoir si il existe un moyen de déployer cette macro sur tout mes fichiers excel?

    Merci d'avance

    Nixonne
    Vive le hockey sur glace

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Points : 723
    Points
    723
    Par défaut
    Salut,

    Même si tu ne connais pas les différents fichiers, je suppose qu'ils sont plus ou moins tous dans un même répertoire.

    Je te propose donc d'utiliser la méthode FileSearch et d'ouvrir tous les fichiers *.xls qui deviendront alors ton ActiveWorkbook. Il ne te restera plus qu'à balancer ton
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.Calculation = xlAutomatic
    et à fermer ton fichier avant de passer au suivant. Avec un Application.ScreenUpdating = False et un Application.DisplayAlerts = False, ça devrait aller.

    Au pire, tu peux le faire même sur des fichiers qui sont déjà en automatique et qui n'ont pas été modifiés, ça ne changera rien pour eux. Ainsi, tu pourrais le faire dès la racine vu, qu'en général, on laisse tout en automatique.

    Qu'en penses-tu ?
    DeaD

  3. #3
    Membre du Club
    Inscrit en
    Juin 2003
    Messages
    205
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Juin 2003
    Messages : 205
    Points : 56
    Points
    56
    Par défaut
    Salut,

    Le problème est que nous utilisons beaucoup les fichiers excel et qu'en ouvrir plusieurs centaines pour les vérifier sera long. c'est pour ca que j'aimerai l'automatiser

    Merci d'avance

    Nixonne
    Vive le hockey sur glace

  4. #4
    Membre chevronné Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Points : 1 999
    Points
    1 999
    Par défaut
    Peut être en utilisant une macro complémenataire, ou a l'ouverture de perso.xls par exemple.

  5. #5
    Membre du Club
    Inscrit en
    Juin 2003
    Messages
    205
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Juin 2003
    Messages : 205
    Points : 56
    Points
    56
    Par défaut
    Salut,

    Je veux bien des infos sur les macro complémentaire car je ne connais pas. Par contre pour perso.xls le problème et qu'il me demande si je veux enregistrer quand je ferme alors que je n'y ait pas touché

    Nixonne
    Vive le hockey sur glace

  6. #6
    Membre chevronné Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Points : 2 168
    Points
    2 168
    Par défaut
    La solution de dead consite justement a l'automatisé.

    Tu trouve un fichier avec FileSearch
    tu l'ouvre
    tu lui balance Application.Calculation = xlAutomatic
    tu ferme en sauvegardant
    puis tu passe au suivant

    Ca sera un peu long pour tous les ouvrir et les sauvegarder mais c'est tout. L'autre solution de aalex_38 permet de le faire (si j'ai bien suivie) automatiquement a la prochaine ouverture d'un fichier, mais ca risque d'être un peut moins évident a réaliser
    « Il n'y a pas de recette miracle qui permet aux gens d’écrire des programmes corrects sans avoir à réfléchir. Il faut apprendre aux gens comment réfléchir »

  7. #7
    Membre du Club
    Inscrit en
    Juin 2003
    Messages
    205
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Juin 2003
    Messages : 205
    Points : 56
    Points
    56
    Par défaut
    Cette automatisation vous la faite comment? car là je ne voit pas.

    Merci d'avance

    Nixonne
    Vive le hockey sur glace

  8. #8
    Membre chevronné Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Points : 1 999
    Points
    1 999
    Par défaut
    un mien sur perso.xls ici

    1
    2
    3
    4

  9. #9
    Membre chevronné Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Points : 2 168
    Points
    2 168
    Par défaut
    Si tu sais dans quel dossier sont les fichier excel je te laisse regarder l'aide sur filesearch ( et tu devrais trouver quelque post a se sujet la fonction recherche est ton amie, tu devrais aussi pouvoir en trouver dans la rubrique contribution du forum excel)

    une fois que tu en as un fichier tu l'ouvre (l'enregistreur de macro te donnera la commande)

    executer la ligne de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.Calculation = xlAutomatic
    devrais suffire (la je ne suis pas sure de moi je n'ai jamais testé)

    tu ferme en sauvegardant les changement (encore l'enregistreur pour avoir le code)

    et tu passe au fichier suivant

    Commence le code et l'on se fera un plaisir de t'aider

    L'avantage de cette méthode c'est que tu le fait une fois pour toute, l'inconvénient c'est que ca va être un peu long a faire. Le fichier perso ne fera pas perdre de temps mais tu devra l'avoir sur ton ordinateur tant que tu n'as pas ouvert au moins une fois chaque fichier. (sauf si j'ai raté un épisode)


    quelque contribution pour rechercher les différents fichiers excel (ca devrait pouvoir t'inspirer)

    Lister les fichiers d'un répertoire et ses sous-répertoires - une méthode + rapide ?


    Rassembler tous les classeurs d'un répertoire, ds un classeur ou ds une feuille
    « Il n'y a pas de recette miracle qui permet aux gens d’écrire des programmes corrects sans avoir à réfléchir. Il faut apprendre aux gens comment réfléchir »

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Points : 723
    Points
    723
    Par défaut
    Re,

    Avec un clavier, une souris et un écran ? Non ?

    Bon, ben alors comme cela :

    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
    Sub recherche()
        Application.ScreenUpdating = False
        With Application.FileSearch
            .NewSearch
            .RefreshScopes
            .LookIn = "C:\" 'Tous les fichiers de C: sont passés en revue
            .Filename = "*.xls" 'Tous les fichiers .xls
            .SearchSubFolders = True 'Et les sous-répertoires !
            .Execute
            For Ctr = 1 To .FoundFiles.Count
                Workbooks.Open (.FoundFiles(Ctr))
                Application.Calculation = xlAutomatic
                ActiveWorkbook.Save
                ActiveWorkbook.Close
            Next
        End With
        Application.ScreenUpdating = True
    End Sub
    Change juste le répertoire et c'est bon !

    A plus tard
    DeaD

  11. #11
    Membre du Club
    Inscrit en
    Juin 2003
    Messages
    205
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Juin 2003
    Messages : 205
    Points : 56
    Points
    56
    Par défaut
    Merci beaucoup pour le code, il marche très bien sous 2003 mais pas sous 2002. .FoundFiles.Count me trouve toujours 0 alors que j'ai bien des .xls dans le dossier.

    Savez vous pourquoi?

    Merci d'avance

    Nixonne
    Vive le hockey sur glace

Discussions similaires

  1. Réponses: 1
    Dernier message: 11/02/2011, 14h14
  2. [WD-2007] un macro sur plusieur fichiers
    Par fk04 dans le forum VBA Word
    Réponses: 4
    Dernier message: 16/02/2010, 12h37
  3. Macro sur plusieurs fichiers
    Par dlight dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/02/2010, 23h18
  4. utiliser une macro sur plusieurs fichiers
    Par papimcha dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 25/04/2008, 16h23
  5. Macros sur Plusieurs fichiers Excel
    Par Echizen1 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/06/2006, 11h21

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