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 :

créer un classeur Excel à partir d'autres classeurs


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
    Avril 2004
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 154
    Par défaut créer un classeur Excel à partir d'autres classeurs
    Bonjour,
    J'ai un fichier client composé d'environ 500 classeurs Excel.
    Chaque classeur Excel correspond à un client différent.
    Chaque classeur est créé de la même façon, c'est à dire le nom en A4, le prénom en B4, l'adresse en A5, etc.
    Je voudrais récupérer toutes ces informations sur 1 seul classeur Excel, de manière à obtenir une liste récapitulative de mes clients pour pouvoir ensuite faire un publipostage.
    Mon problème est de savoir comment je peux récupérer "automatiquement" les informations des 500 classeurs, sans avoir à les reprendre 1 par 1.
    Espérant avoir été assez clair,
    D'avance Merci pour votre aide,

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 154
    Par défaut
    Bonjour,
    N'ayant pas eu de réponses, je voulais apporter des infos complémentaires et une intérrogation.
    En fait, si je fais tout "à la main", le travail consisterait à ouvrir chaque classeur Excel, puis faire un copier/coller des cellules en question dans un classeur Excel "liste" qui me servira de base pour le publipostage.
    Je pense qu'en faisant une macro c'est possible, mais avec l'enregistrement automatique de la macro, j'imagine que le nom du classeur Excel sera enregistré et que cela ne fonctionnera donc plus pour les suivants.
    Je me demandais s'il était possible dans une macro de changer le nom du classeur en question et de la remplacer par une fonction, un nom... (ou autre) quelquonque qui permet d'enregistrer cette macro et qu'elle fonctionnera pour tous les classeurs Excel sur lesquels j'aurai à travailler.
    Merci d'avance pour vos idées.

    Voici la macro que je voudrais exécuter:

    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
    Sub Client()
    '
    ' Client Macro
    '
        ActiveCell.Select
        ActiveCell.FormulaR1C1 = "='[Dupont J.xls]Feuil1'!R4C2"
        ActiveCell.Offset(0, 1).Range("A1").Select
        ActiveCell.FormulaR1C1 = "='[Dupont J.xls]Feuil1'!R5C2"
        ActiveCell.Offset(0, 1).Range("A1").Select
        ActiveCell.FormulaR1C1 = "='[Dupont J.xls]Feuil1'!R4C4"
        ActiveCell.Offset(0, 1).Range("A1").Select
        ActiveCell.FormulaR1C1 = "='[Dupont J.xls]Feuil1'!R5C4"
        ActiveCell.Offset(0, 1).Range("A1").Select
        ActiveCell.FormulaR1C1 = "='[Dupont J.xls]Feuil1'!R6C4"
        ActiveCell.Offset(-3, -4).Range("A1").Select
    End Sub
    Elle me permet de copier /coller différentes informations contenues dans le classeur "Dupont J.xls" dans mon classeur "Liste".

    Mon idée est d'ouvrir un par un mes classeurs Excel Client, et d'exécuter la macro.
    Le problème est que cette macro ne fonctionne que pour le classeur Excel nommé "Dupont J.xls".
    Je voulais savoir comment remplacé "Dupont J.xls" par un nom commun qui fonctionnerait pour tous les classeurs Excel que j'ouvrirai un par un au fur et à mesure.
    La procédure que je pensais utiliser.
    J'ouvre le classeur Excel client Dupont, je lance la macro, cela me copie les données dans mon tableau final, puis je ferme le classeur Excel client Dupont.
    Ensuite même chose pour le classeur Martin...
    Merci pour votre aide

  3. #3
    Membre confirmé
    Inscrit en
    Août 2010
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 168
    Par défaut
    Hmm tu reunis dans un classeur l'ensemble des noms de tes classeurs et avec une boucle tu stock à chaque fois le nom dans un variable. Pas sur ca marche mais bon.

    Apres si tu boucle sur les 500 classeurs j'espere t'es pas pressé :p

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    592
    Détails du profil
    Informations personnelles :
    Âge : 75
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 592
    Par défaut
    Regarde la fonction elle permet de récupérer les noms des fichiers d'un répertoire durant une boucle.

    Il suffit ensuite de recopier les informations utiles.

    A+
    PPz

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 154
    Par défaut
    Merci pour la réponse,
    Je viens de regarder sur Internet des explications de la fonction Dir.
    Je pense que çà devrait fonctionner.
    Cependant, je ne suis pas assez calé... Je ne sais pas faire les boucles ou autres...
    Quelqu'un pourrait me donner la macro à écrire pour que cela fonctionne.
    Pour info, j'ai un dossier par lettre de l'alphabet, et à l'intérieur de chaque dossier, une multitude de classeur Excel pour chaque client.

    Merci beaucoup

  6. #6
    Membre très actif Avatar de Nako_lito
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2008
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mai 2008
    Messages : 793
    Par défaut
    dans l'ordre tu dois penser a faire ceci (j'ai fais la meme y'a quelque temps )

    - pour tous les classeur de mon répertoire
    - ouvrir le classeur
    - copier les cellules voulues (ici A4, B4, A5 etc)
    - copier dans l'activeworkbook les données en A & la derniereligne + 1
    - fermer le classeur client
    - fin pour

    pour obtenir la derniere ligne d'une feuille, utilise la fonction 'end' de l'objet range.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    range("A65536").End(xlUp).Row
    te donne la derniere ligne utilisé sur la colonne A.

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

Discussions similaires

  1. [XL-2010] Copier une plage de données d'un classeur excel X a un classeur excel Y
    Par CmsrFr dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 27/05/2012, 19h00
  2. [XL-2007] exporter les une ligne excel vers un autre classeur excel en vba
    Par Maxim0 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/06/2011, 21h55
  3. [XL-2007] exporter les donnée excel vers un autre classeur excel en vba
    Par aminee1666 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/06/2011, 10h58
  4. Réponses: 1
    Dernier message: 29/05/2008, 17h10
  5. [VBA-E] enregistrer un classeur excel depuis un autre classeur
    Par roseau dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 12/03/2007, 15h15

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