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 :

Automatisation ouverture fichier excel [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 105
    Par défaut Automatisation ouverture fichier excel
    Bonjour,

    Voici ma macro. Celle ci se répète quatre fois d'affilé pour aller chercher des infos dans 4 fichiers excel différents.

    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
    19
    Sub Repport_montant_commande_ALE_ALOOO()
    Dim f As Worksheet, g As Worksheet, c As Range
    Dim CelTest As Range
     
    Set g = Workbooks("03 - Cash flow Ikra BM.xls").Sheets("Courbes")
       For Each CelTest In g.Range("C19:AP19") 'Cellules devant être complétées
           CelTest.Value = 0 'On vide le contenu de la case juste en dessous
           For Each f In Workbooks("01 - Fiches suiveuses Ikra - ALE 00.xls").Worksheets 'Chaque onglet est passé
               If f.Name <> "RECAP" And f.Name <> "MODELE" And f.Name <> "Diffusion Facture" Then 'on execute que si diferent de Recap et Modele (tu fera attention a la casse par contre)
                   For Each c In f.Range("A11:A18") 'les cellules contenant les dates des commande
                       If IsDate(c.Value) Then
                           If Format(c, "mm/yy") = Format(CelTest.Offset(-8, 0), "mm/yy") Then 'Si les dates correspondent on incremente la case sous la date(classeur B) correspondent on incremente la case sous la date(classeur B)
                               CelTest = Round(CDbl(CelTest) + CDbl(c.Offset(0, 2)), 2)
                           End If
                       End If
                   Next c
               End If
           Next f
       Next

    Pour le moment, j'ouvre manuellement chaque fichier et je lance la macro. Je souhaiterai désormais:

    lancer la macro dans le fichier A => la macro ouvre le fichier B (récupère les infos nécessaires, cette partie fonctionne déjà) => la macro referme le fichier B, et ainsi de suite avec le fichier C, D, E

    Les fichiers B, C, D et E portent toujours le même nom et sont enregistrés à un endroit fixe

    Merci beaucoup de votre aide

  2. #2
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    Salut Laura-c,

    un truc très simple quand tu ne sais pas et que la commande est disponible via le menu et/ou les barres d'outils. -> L'enregistreur de macro.

    Tu le démarres, tu ouvres ton fichier B, ... tu le fermes... tu arrêtes l'enregistreur de macro et tu as déjà pas mal d'éléments pour avancer dans le code généré dans ton module.

    Bon travail.

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 105
    Par défaut
    Ca marche merci du conseil.

    Voici le code que j'ai mis quatre fois d'affilé au début de ma macro

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ChDir _
        "\\Fr-f-Chpy1\workgroup\di\Projets\50330800\1_Assistante IKRA\01 - Gestion\01 - Part Bonus Malus"
        Workbooks.Open(Filename:= _
        "\\Fr-f-Chpy1\workgroup\di\Projets\50330800\1_Assistante IKRA\01 - Gestion\01 - Part Bonus Malus\01 - Fiches suiveuses Ikra - ALE 00.xls" _
        ).RunAutoMacros Which:=xlAutoOpen  'ouverture automatique du tableau fiches suiveuses
    Et voici le code que j'ai aussi mis quatre fois pour tout refermer.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Windows("01 - Fiches suiveuses Ikra - ALE 00.xls").Activate
        ActiveWindow.Close 'fermeture automatique fiches suiveuses
    Il y a peut être moyen de réduire le nombre de code; mais bon en attendant ça fera l'affaire.

  4. #4
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    Salut,

    pour simplifier, tu peux déjà supprimer le CHDIR avant le workbook.open.

    Il est inutile.


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

Discussions similaires

  1. Automatiser ouverture fichier Excel
    Par jerem7w dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 19/02/2009, 18h10
  2. pb d'ouverture fichier excel
    Par Phiss dans le forum ASP
    Réponses: 14
    Dernier message: 20/11/2006, 14h41
  3. Ouverture fichier excel
    Par licorne dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 10/04/2006, 16h50
  4. Réponses: 1
    Dernier message: 26/01/2006, 18h16
  5. activation macro lors d'une ouverture fichier Excel
    Par mirumoto dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 12/05/2005, 15h08

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