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 :

Ouvrir tous les fichiers d'un dossier


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 87
    Points : 48
    Points
    48
    Par défaut Ouvrir tous les fichiers d'un dossier
    bonjour le forum,
    je souhaite ouvrir tous les fichiers excel se trouvant dans un dossier et y coller des données mais voila s'ouvre le premier fichier c'est tous et de plus elle se bloque a cet endroit
    voici la macro

    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
    20
    21
    22
    23
    24
    25
    26
    Sub chemin_Entrepot()
    Sheets("TONY").Select
    Dim W As String
    W = Dir(Sheets("TONY").Range("A516") & "*.xlm")
    Do Until W = ""
    Workbooks.Open Filename:=Sheets("TONY").Range("A516") & W
    R = ("TARIFAIRE v5.xlm")
    Application.Windows(R).Activate
    Sheets("COEFFICIENTS").Select
    Range("D65").Select
    Selection.Copy
    Windows(2).Activate
    Sheets("TONY").Select
    Range("B517").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
    Application.Windows(2).Activate
    Application.Windows(R).Activate
    Application.Windows(2).Activate
     ActiveWorkbook.Close savechanges:=False
    Application.Windows(R).Activate
      W = Dir
      Loop
    Application.ScreenUpdating = True
    
    End Sub
    merci d'avance de votre aide

  2. #2
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    Tu n'aurais pas tendance à oublier un peu les \ de temps en temps ???

    Par exemple ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dir(Sheets("TONY").Range("A516") & "*.xlm")
    que penses-tu de mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dir(Sheets("TONY").Range("A516") & "\*.xlm")
    à moins que le \ soit déjà dans la Range "A516"


    Ensuite, tu devrais travailler avec des objets, plutôt que des string ! Ce serait plus confortable !
    Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Dim oCible as workbook
    Dim oSource as WorkBook
     
    set oSource = WorkBooks("TARIFAIRE v5.xlm")
    '...
    '...
    Set oCible = Workbooks.Open( Filename:=Sheets("TONY").Range("A516") & W)
    '...
    'Et, au lieu d'un copier-coller, uneécriture directe dans la cellule...
    oCible.WorkSheets("TONY").Range("B517").Value = oSource.WorkSheets("COEFFICIENTS").Range("D65").Value
    '...
    '...
    oCible.Close
    bon amusement

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 87
    Points : 48
    Points
    48
    Par défaut
    bonjour Maxence,
    j' ai essayé ta proposition avec des objets mais je bloque sur cette ligne en sachant que la celulle A516 de la feuille TONY contient le chemin suivant celui du dossier:
    C:\Documents and Settings\frnto2m\Bureau\TARIFICATION\Entrepots\
    et voici ou bloque la macro:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub chemin_Entrepot_TEST()
    Dim oCible As Workbook
    Dim oSource As Workbook
     
    Set oSource = Workbooks("TARIFAIRE v5.xlm")
    '...
    '...
    Set oCible = Workbooks.Open(Filename:=Sheets("TONY").Range("A516") & W)'...
    'Et, au lieu d'un copier-coller, uneécriture directe dans la cellule...
    oCible.Worksheets("TONY").Range("B517").Value = oSource.Worksheets("COEFFICIENTS").Range("D65").Value
    '...
    '...
    oCible.Close
    End Sub

  4. #4
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    et quel est le message d'erreur ?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 87
    Points : 48
    Points
    48
    Par défaut
    En faite a la base je souhaite ouvrir tous les fichiers se trouvant dans ce dossier ils sont nommés differement mais identique a la base

  6. #6
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    Citation Envoyé par VELO1222 Voir le message
    voici ou bloque la macro
    Citation Envoyé par Maxence HUBICHE Voir le message
    et quel est le message d'erreur ?

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 87
    Points : 48
    Points
    48
    Par défaut
    bonjour Maxence,
    la ligne bleue ou beug la macro est du a l'adresse de la cellule qui renseigne le chemin du dossier et non le nom du fichier a ouvrir car mon souhait etant d'ouvrir en boucle et mettre a jour tous les fichiers dans ce dossier
    cdt
    tony

  8. #8
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    Je suis désolé, mais je ne vois pas en quoi cela pose problème !

    Tu as fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim W as string
    W=Dir(TaCellule & "*.xlm")
     
    Do Until W=""
        'Ici la ligne pour ouvrir le fichier que tu as surligné en bleu
     
     
        W=Dir()
    Loop
    Donc, tu boucles bien sur tous les fichiers du dossier !
    Où est le problème ?
    Si tu ne donnes pas plus d'indices, je ne vais pas pouvoir t'aider...

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 87
    Points : 48
    Points
    48
    Par défaut
    j'ai loupé quelque chose mais j'ai essayé la proposition que tu m'as faite
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub chemin_Entrepot_TEST()
    Dim oCible As Workbook
    Dim oSource As Workbook
     
    Set oSource = Workbooks("TARIFAIRE v5.xlm")
    '...
    '...
    Set oCible = Workbooks.Open(Filename:=Sheets("TONY").Range("A516") & W)'...
    'Et, au lieu d'un copier-coller, uneécriture directe dans la cellule...
    oCible.Worksheets("TONY").Range("B517").Value = oSource.Worksheets("COEFFICIENTS").Range("D65").Value
    '...
    '...
    oCible.Close
    End Sub
    mais je ne vois pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim W as string
    W=Dir(TaCellule & "*.xlm")
     
    Do Until W=""
        'Ici la ligne pour ouvrir le fichier que tu as surligné en bleu
     
     
        W=Dir()
    Loop
    explique moi STP

  10. #10
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    Ben, disons que je t'ai donné une méthode, et que c'est à toi de l'implémenter.
    Je ne t'ai pas donné un code tout fait non plus...

    Combine le tien et le mien, et cela devrait aller...

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 87
    Points : 48
    Points
    48
    Par défaut
    j'ai toujours un problème et sur la même ligne, de plus à la fermeture du fichier j'ai la question "voulez vous enregistrer les modifications apportées à ......"
    j'ai 12 fichiers dans le dossier il serait pénible de répondre oui a chaque fois mais d'abord j'en suis pas là car un seul s'ouvre et ensuite bleug

    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
    20
    21
    22
    23
    Sub chemin_Entrepot_TEST()
    Dim W As String
    W = Dir(Sheets("TONY").Range("A516") & "*.xlm")
     
    Do Until W = ""
    
    Dim oCible As Workbook
    Dim oSource As Workbook
     
    Set oSource = Workbooks("TARIFAIRE v5.xlm")
    '...
    '...
    Set oCible = Workbooks.Open(Filename:=Sheets("TONY").Range("A516") & W)'...
    'Et, au lieu d'un copier-coller, uneécriture directe dans la cellule...
    oCible.Worksheets("TONY").Range("B517").Value = oSource.Worksheets("COEFFICIENTS").Range("D65").Value
    '...
    '...
    oCible.Close
    
     W = Dir()
    Loop
    
    End Sub
    je ne comprends pas

  12. #12
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Pour ne pas mourir idiot, c'est quoi un fichier xlm?
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  13. #13
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    C'est un truc qui a existé dans le passé et que certains persistent à appeler ainsi.
    C'est comme cela qu'on nommait les classeur de macros dans la version 4 d'Excel.

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 87
    Points : 48
    Points
    48
    Par défaut
    bonjour alain,
    Pour repondre a ta question voici dans le fichier ci joint les extension excel
    cdt
    Tony
    Fichiers attachés Fichiers attachés

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 87
    Points : 48
    Points
    48
    Par défaut
    maxence bonjour,
    Pourriez-vous m'aider a terminer la macro qui bloque sur la ligne bleue
    Je ne comprends pas
    Et est il possible de suprimer la demande "voulez vous enregistrer les modifications apportées à ......", sachant qu'il y a 12 fichiers dans le dossier
    Cdt
    Tony

  16. #16
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    Oui, en faisant un un petit F1 sur Close, tu aurais trouvé la solution...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    oCible.close False

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 87
    Points : 48
    Points
    48
    Par défaut
    ca ne marche pas je bloque pour faire la boucle c'est a dire sur cette ligne bleue et j'ai un message d'erreur d'exécution '1004' La methode 'sheets' de l'objet'_Global a échoué

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    Sub chemin_Entrepot_TEST()
    Dim oCible As Workbook
    Dim W As String
    W = Dir(Sheets("TONY").Range("A516") & "*.xlm")
     
    Do Until W = ""
    Set oCible = Workbooks.Open(Filename:=Sheets("TONY").Range("A516") & W)
    
    Dim oSource As Workbook
     
    Set oSource = Workbooks("TARIFAIRE v5.xlm")
    '...
    '...
    
    '...
    'Et, au lieu d'un copier-coller, uneécriture directe dans la cellule...
    oCible.Worksheets("TONY").Range("B517").Value = oSource.Worksheets("TONY").Range("A517").Value
    oCible.Worksheets("TONY").Range("B533").Value = oSource.Worksheets("TONY").Range("A511").Value
    '...
    '...
    'oCible.Save
    oCible.Close False
    
    
     W = Dir()
    Loop
    
    End Sub
    merci de ton aide

  18. #18
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    Ca fait cela la deuxième fois que tu appelle Sheets ("TONY"), mais pas la première fois ?

    hmm

    Dans ce cas, stockes le Path du dossier dans une variable, dès le démarrage

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Sub chemin_Entrepot_TEST()
        Dim oCible As Workbook
        Dim sPath as String
        Dim W As String
     
        sPath = Sheets("TONY").Range("A516").Value
        W = Dir(sPath & "*.xlm")
     
        Do Until W = ""
            Set oCible = Workbooks.Open(Filename:=sPath & W)
           '... la suite ici ...

  19. #19
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 87
    Points : 48
    Points
    48
    Par défaut
    Merci beaucoup Maxence
    c'est bon cette fois elle boucle sur tous les fichiers du dossier, encore merci bon week end
    Sincerement
    Tony

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 19/12/2011, 18h20
  2. [WD-2003] Ouvrir tous les fichiers word d'un dossier et les enregistrer sous .html
    Par pierre008 dans le forum VBA Word
    Réponses: 3
    Dernier message: 22/06/2010, 11h02
  3. Réponses: 5
    Dernier message: 12/03/2009, 14h52
  4. Ouvrir tous les fichiers d'un dossier sauf celui de ma macro?
    Par drthodt dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 29/07/2008, 11h58
  5. Réponses: 2
    Dernier message: 16/06/2008, 14h08

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