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 :

ouverture et lecture de fichier excel par macro


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 46
    Points : 15
    Points
    15
    Par défaut ouverture et lecture de fichier excel par macro
    Bonjour,
    Je dois traiter plusieurs fichiers excel d'un même dossier.Il est donc nécessaire de les ouvrir avant.J'arrive a en ouvrir un en indiquant son nom mais il faudrait qu'il ouvre tous les fichiers présents dans le dossier spécifié.
    Ensuite, je dois effectuer un traitement pour chaque fichier ouvert, pour cela j'utilise une variable(fichierRma).

    Pouvez vous m'aider sur le moyen d'effectuer tout cela.
    Je vous montre le code que j'ai déjà commencé.

    Dans mon code, le fichier est DAL BO F RMA_200805.xls, je voudrais donc le changer par une variable qui changerait à chaque 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
     
     
    Dir "C:\Outil RH\Test"
     
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    Source = "C:\Outil RH\Test"
           For Each File In fso.GetFolder(Source).Files
                Workbooks.Open(Filename:= _
                "C:\Outil RH\Test\DAL BO F RMA_200805.xls"). _
                RunAutoMacros Which:=xlAutoOpen
            Next
     
     
    Windows("SaisieAuto_2008_05_Suivi_RMA.xls").Activate
    'fichier Rma = "DAL BO F RMA_200805.xls"
    'Ici tout le traitement à effectuer pour chaque fichier
    Merci de me répondre et n'hésitez pas à poser des questions si mon explication n'est pas claire!

  2. #2
    Membre émérite
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Points : 2 793
    Points
    2 793
    Par défaut
    Voilà comment faire:
    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
    Dir "C:\Outil RH\Test"
     
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    Source = "C:\Outil RH\Test"
           For Each File In fso.GetFolder(Source).Files
                Workbooks.Open(Filename:= _
                File.Name). _
                RunAutoMacros Which:=xlAutoOpen
            Next
       
        
    Windows("SaisieAuto_2008_05_Suivi_RMA.xls").Activate
    'fichier Rma = "DAL BO F RMA_200805.xls"
    'Ici tout le traitement à effectuer pour chaque fichier
    Toute question technique envoyée en MP ira directement à la poubelle

    Un code ne marchera jamais, il n'a jamais reçu la capacité de se déplacer.
    Inutile donc de dire "ça marche pas", donnez plutôt des informations précises afin de mieux pouvoir vous aider.


    Grand gourou de la -attitude

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 46
    Points : 15
    Points
    15
    Par défaut
    Lors de l'exécution pa

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 46
    Points : 15
    Points
    15
    Par défaut
    Lors de l'exécution pas a pas, j'ai l'erreur suivante:
    Erreur d'execution '424', Objet requis
    Ca se passe à la ligne:For Each File In fso.GetFolder(Source).Files

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    Je pense qu'il y a une erreur sur le code en vert (à vérifier) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     Dir "C:\Outil RH\Test"
     
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    Source = "C:\Outil RH\Test"
           For Each File In fso.GetFolder(Source).Files
                Workbooks.Open(Filename:= _
                File.Name). _
                RunAutoMacros Which:=xlAutoOpen
            NextWindows("SaisieAuto_2008_05_Suivi_RMA.xls").Activate
    'fichier Rma = "DAL BO F RMA_200805.xls"
    'Ici tout le traitement à effectuer pour chaque fichier

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 46
    Points : 15
    Points
    15
    Par défaut
    Effectivement, il y avait cet erreur,
    on rentre bien dans la boucle, mais maintenant, j'ai l'erreur 1004 qui dit que BEAU A RMa.xls est introuvable(le 1er fichier de mon dossier)

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    J'ai utilisé ce code qui chez moi a fonctionné :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub essai()
     
    Set ofso = CreateObject("Scripting.FileSystemObject")
    Source = "C:\divers\test\"
    fich = Dir(Source & "*.xls")
           For Each File In ofso.GetFolder(Source).Files
            Workbooks.Open(Source & fich).RunAutoMacros Which:=xlAutoOpen
           fich = Dir
        Next
     
     
    Windows("SaisieAuto_2008_05_Suivi_RMA.xls").Activate
    End Sub

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 46
    Points : 15
    Points
    15
    Par défaut
    A la ligne : Workbooks.Open(Source & fich).RunAutoMacros Which:=xlAutoOpen

    Une nouvelle erreur s'affiche qui m'indique que le fichier est peut être en lecture seule ou crypté.J'ai bien sur vérifié et ce n'est pas le cas!

    Je ne sais pas si je m'en sortirais un jour!!

  9. #9
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    Cela me rappelle la remarque que je voulais vous faire :

    dans la mesure où vous ouvrez des fichiers contenant une macro "Autoopen" celle-ci doit se lancer automatiquement ?

    Est-il utile d'indiquer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .RunAutoMacros Which:=xlAutoOpen

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 46
    Points : 15
    Points
    15
    Par défaut
    l'erreur est toujours la

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 46
    Points : 15
    Points
    15
    Par défaut
    J'ai enfin réussi a faire ma boucle pour ouvrir les fichiers.

    Cependant, les fichiers à ouvrir ont des macros et certains indiquent qu'au moment de l'ouverture, la macro est inactive(un message apparait puis disparait 2sec après) or les macros sont actives.De plus, je ne peux pas accéder aux macros, elle sont protégées par un mot de passe.

    Avez vous une idée de la solution?

Discussions similaires

  1. [XL-2007] Renommer un fichier Excel par macro
    Par Yunasthar dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 23/08/2010, 11h05
  2. Copier coller entre deux fichiers excel par macro
    Par miss-o-21 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 26/11/2009, 14h45
  3. ouverture auto d'un fichier excel par macro access
    Par pascal913 dans le forum Access
    Réponses: 5
    Dernier message: 26/07/2006, 16h50
  4. ouverture auto d'un fichier excel par macro
    Par pascal913 dans le forum Access
    Réponses: 2
    Dernier message: 26/07/2006, 12h45
  5. transfert contenu fichier excel par macro
    Par pascal913 dans le forum Access
    Réponses: 7
    Dernier message: 12/07/2006, 11h01

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