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 :

Macro copier/coller sur 2 fichiers aux noms variables


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Ex technicien Prévention Incendie
    Inscrit en
    Février 2009
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ex technicien Prévention Incendie
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2009
    Messages : 156
    Points : 92
    Points
    92
    Par défaut Macro copier/coller sur 2 fichiers aux noms variables
    Re-Bonjour
    Mon nouveau problème. Je travaille sur deux fichiers xls dont les 2 noms peuvent changer.
    Un peu d'explication;
    Je fait une base qui se nomme à l'instant "Synthese_V10" mais dans le temps sa version V va évoluer
    je récupére des données sur un centaine de fichiers (les uns après les autres, pas tout d'un coup quand même !)
    donc ces fichiers n'ont obligatoirement pas le même nom , prenons "DFS_EC" pour exemple..
    J'ai, presque, réussit à faire la macro qui permet la recherche du fichier.
    Maintenant je veux copier une plage de la feuille "Wsite" dans le fichier"DFS_EC"
    Pour la coller sur une cellule d'une feuille de "Synthese_V10"
    Et là je me heurte au problème du fichier actif, au début c'est "DFS_EC" puis après c'est "Synthese_V10". Et vous allez rire, il y a encore une autre plage à copier dans "DFS_EC".
    pouvez vous m'aider à gérer le problème de l' "ActiveWorkBook".
    J'ai abrégé "DFS_EC" par "MI" et "Synthése_10" par "MC" mais je n'arrive pas à trouver le code qui permet de les dissocier tout en restant évolutif

    Merci de votre aide

  2. #2
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonsoir,

    Il te faut utiliser des variable pour pouvoir y faire référence sans aucun soucis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Dim Classeur As Workbook
     
    'le classeur actif
    Set Classeur = ActiveWorkbook
     
    'le classeur est déjà ouvert dans l'application
    Set Classeur = Workbooks("DFS_EC.xls")
     
     'le classeur que l'on veut ouvrir
    Set Classeur = Workbooks.Open("D:\DFS_EC.xls")
    Dans ton exemple, on pourrait faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Dim ClsSynthese As Workbook
    Dim ClsDFS As Workbook
    'les classeurs sont déjà ouverts dans l'application
    Set ClsSynthese = Workbooks("Synthese_V10.xls")
    Set ClsDFS = Workbooks("ClsDFS.xls")
    Hervé.

  3. #3
    Membre régulier
    Homme Profil pro
    Ex technicien Prévention Incendie
    Inscrit en
    Février 2009
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ex technicien Prévention Incendie
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2009
    Messages : 156
    Points : 92
    Points
    92
    Par défaut
    Bonjour Hervé,
    Je n'ai pas de doute sur le fonctionnement du code, mais il me reste le problème du fichier "FDS_EC" (la matrice importée) car c'est celle que j'ai en une centaine d'exemplaire avec pour seul points commun dans leurs appellations "_EC".
    Pour ce qui est de l'autre fichier du fait que j'en suis le gestionnaire, je peux modifier le chemin dans la macro sans problème.
    Dernier détail, pour un peu que je sois rigoureux le "_" de "FDS_EC" sera toujours en 4ème position.
    Et peut on envisager de faire un détrompeur qui vérifierait si les valeurs de 4 à 6 correspondent à l'attendu ?
    Désolé d'abuser à ce point
    Merci
    Thierry

  4. #4
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonsoir Thierry,

    Tu veux donc tester si les noms finissent par "_EC" ?
    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
     
    Sub Test()
     
        Dim MonMot As String
     
        'le nombre de lettres avant le tiret bas n'a pas d'importance
        MonMot = "FDS_EC"
     
        'test de l'existance des trois derniers carractères ("_EC")
        If Right(MonMot, Len(MonMot) - InStrRev(MonMot, "_") + 1) = "_EC" Then
            'ici ton code...
            'affiche pour le test
            MsgBox Right(MonMot, Len(MonMot) - InStrRev(MonMot, "_") + 1)
     
        End If
     
    End Sub
    Hervé.

  5. #5
    Membre régulier
    Homme Profil pro
    Ex technicien Prévention Incendie
    Inscrit en
    Février 2009
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ex technicien Prévention Incendie
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2009
    Messages : 156
    Points : 92
    Points
    92
    Par défaut Suite
    Bonjour Hervé
    Je vais tester tes propositions le plus rapidement possible. Mais je suis en déplacement pour les 2 semaines à venir. Donc loin de mon PC fixe au travail sur lesquels se trouvent mes fichiers en cours de développement. Dès que possible je te fais part des résultats. Et vraisemblablement de mes nouvelles cogitations.
    Merci de ton aide
    Thierry

Discussions similaires

  1. Macro copier coller d'une plage dans un nouveau fichier Excel sous condition
    Par lapagaille dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/02/2014, 17h27
  2. Macro copier coller d'une plage sur nouveau fichier excel sous condition
    Par lapagaille dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/02/2014, 13h11
  3. Boucle copier/coller sur tous les fichiers d'un dossier
    Par santadrix dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/10/2012, 10h58
  4. [XL-2003] aide sur macro copier coller
    Par young 25 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/04/2010, 20h06
  5. 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

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