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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 87
    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 confirmé

    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 : 56
    Localisation : France, Val d'Oise (Île de France)

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

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    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 confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 87
    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 confirmé

    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 : 56
    Localisation : France, Val d'Oise (Île de France)

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

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

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

    Informations forums :
    Inscription : Janvier 2009
    Messages : 87
    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 confirmé

    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 : 56
    Localisation : France, Val d'Oise (Île de France)

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

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    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 confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 87
    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 confirmé

    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 : 56
    Localisation : France, Val d'Oise (Île de France)

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

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    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
    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 : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    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!

  10. #10
    Expert confirmé

    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 : 56
    Localisation : France, Val d'Oise (Île de France)

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

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    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.

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

    Informations forums :
    Inscription : Janvier 2009
    Messages : 87
    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

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

    Informations forums :
    Inscription : Janvier 2009
    Messages : 87
    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

  13. #13
    Expert confirmé

    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 : 56
    Localisation : France, Val d'Oise (Île de France)

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

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    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

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

    Informations forums :
    Inscription : Janvier 2009
    Messages : 87
    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

+ 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