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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 46
    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 Expert
    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
    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

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

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

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

    Informations forums :
    Inscription : Juin 2006
    Messages : 46
    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 averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 46
    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 averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 46
    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