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 pour récupérer des données pour alimenter un fichier récapitulatif


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2013
    Messages : 26
    Points : 3
    Points
    3
    Par défaut Macro pour récupérer des données pour alimenter un fichier récapitulatif
    Bonjour à tous,

    Je joins un fichier où il y a le mode d'emploi et un code et j'aimerais que vous m'aidiez à le modifier et à resoudre cette macro.

    J'attends vos retours!! Merci d'avance de votre aide

    Je réexplique mais c'est dans le fichier joint avec l'exemple.
    J'ai deux fichiers A et B qui se trouve dans deux répertoires différents.
    C'est la liste des élèves de la classe A et de la classe B avec pour informations leur nom, prénom,adresse et numéro de téléphone.Chaque jour, il y a de nouveaux élèves à rajouter dans chacune des classe donc des lignes en plus dans les différents fichiers.Ces fichiers sont remplis par d'autres personnes.
    Moi j'ai un fichier récapitulatif qui recense la liste de tous les élèves de la classe A et de la classe B avec cette fois ci pour informations le nom, prénom et numéro de téléphone.
    Problématique : Moi je veux faire une macro qui met à jour automatiquement mon fichier récapitulatif c'est-à-dire
    copie les fichiers de la classe A et de la classe B les uns en dessous des autres et même si y a de nouvelles lignes
    que ça puisse les récuperer et alimenter mon nouveau fichier.
    Par contre j'aimerais garder toujours dans le fichier récapitulatif les en têtes pour qu'il me récupère dans les fichiers A et B que les informations


    Voici le code

    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
    Private Sub Worksheet_Calculate()
    'effectuera la macro lors d'un appui sur F9
    Dim Cld As Workbook, Cls As Workbook
    Dim cell As Range
     
    Set Cld = ThisWorkbook
    'vide le classeur destination
    last_row = Cld.Sheets("Tableau Récapitulatif").Range("A1").End(xlDown).Row
    Cld.Sheets("Tableau Récapitulatif").Range(Cells(1, 1), Cells(last_row, 3)).Delete
     
    'selectionne le classeur source
    For Each cell In Sheets("feuil1").Range("a1:a2")
    'ouvre en lecture seule le premier classeur source
        Set Cls = Application.Workbooks.Open("" & cell.Text, , True)
    'selectionne les ligne de A2 a la derniere ligne, les selectionne, les copie et les colle sur le classeur destination
        Cls.Sheets("fichier1").Range("A2:a" & Range("a65000").End(xlUp).Row).Copy Cld.Sheets("feuil1").Range("A2:a" & Range("a65000").End(xlUp).Row)
    'ferme le classeur source
        Cls.Close False
    'passe au suivant
    Next cell
    End Sub

  2. #2
    Membre éprouvé Avatar de keygen08
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations forums :
    Inscription : Octobre 2012
    Messages : 545
    Points : 973
    Points
    973
    Par défaut
    Les explications sont dans le module.
    La macro est fonctionnelle en l'état donc prend le temps de comprendre ce qui ne fonctionne pas avant de changer tout.
    Fichiers attachés Fichiers attachés

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2013
    Messages : 26
    Points : 3
    Points
    3
    Par défaut
    mais comment faire pour mettre les fichiers les uns au dessous des autres sachant que les lignes changent chaque jour. quelle code vais-je utiliser?

    Et puis dans le code que tu m'a montré où dois je mettre la copie du lien 2 car dans le code j'ai mis la copie de la feuille du premier lien mais je sais pas où mettre le second?

  4. #4
    Membre éprouvé Avatar de keygen08
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations forums :
    Inscription : Octobre 2012
    Messages : 545
    Points : 973
    Points
    973
    Par défaut
    les lignes changent chaque jour
    Evidemment, mais les données d'aujourd'hui doivent-elle remplacer les données d'hier ou s'inscrire en dessous d'hier. Dans le premier cas c'est fait, dans le deuxieme cas, il suffit de mettre cette ligne en commentaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Tableau Récapitulatif").Range("a1:d" & Feuil3.Range("a65000").End(xlUp).Row).Delete
    Et puis dans le code que tu m'a montré où dois je mettre la copie du lien 2 car dans le code j'ai mis la copie de la feuille du premier lien mais je sais pas où mettre le second? ??????
    chais pa bien parler franchaiche, moi yen a pas comprendre

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2013
    Messages : 26
    Points : 3
    Points
    3
    Par défaut
    je t'explique ce que je voulais dire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cls.Sheets("fichier1").Range("A2:a" & Range("a65000").End(xlUp).Row).Copy Cld.Sheets("Tableau récapitulatif").Range("A2:a" & Range("a65000").End(xlUp).Row)
    dans le code que tu m'a montré, il ouvre tous les liens qui sont dans la feuille 1 du fichier destinataire

    si je comprend bien il selectionne dans le fichier1 de la colonne A2 à la fin et il colle dans le fichier destinataire en l'occurence le tableau récapitulatif à partir de la colonne A2. moi ma question et pour le fichier2 si je veux le copier aussi et le mettre à la suite du fichier 2?

    Dans le code que tu m'a montré, il ouvre tous les liens qui sont dans la feuille 1 du fichier destinataire, or moi dans le code ci-dessus je copie seulement le fichier 1 du lien 1 et non le fichier 2 du lien 2

    Dsl si je te pose beaucoup de questions mais c'est parce que je débute en vba et je veux m'améliorer donc je veux mieux comprendre

    Merci pour tes retours car tu m'aide vraiment

  6. #6
    Membre éprouvé Avatar de keygen08
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations forums :
    Inscription : Octobre 2012
    Messages : 545
    Points : 973
    Points
    973
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cls.Sheets("fichier1").Range("A2:a" & Range("a65000").End(xlUp).Row).Copy Cld.Sheets("Tableau récapitulatif").Range("A2:a" & Range("a65000").End(xlUp).Row)
    Je détail
    Cls = classeur source (initié dans la boucle par for each)
    Sheets("fichier1") = le nom de la feuille source (il faut donc que la feuille source du classeur B porte le meme nom que la feuille source du classeur A)
    Le reste tu l'as compris.
    Pour que l'on arrive à bien se comprendre, il te faut faire attention au mots que tu emploi.
    Un repertoire contient un classeur(ou un fichier) qui contient des feuilles qui contient des cellules.
    un lien, peut-etre ou pas le contenu d'une cellule. Donc j'ai du mal a comprendre
    il ouvre tous les liens qui sont dans la feuille 1 du fichier destinataire
    Cela n'as jamais été prevu ni dans mon code ni dans le tien??
    Voulait tu dire " il copie toutes les cellules"

    Vérifie si le code envoyé dans le fichier que j'ai joint est fonctionnel.
    S'il ne l'ai pas, verifie que les feuilles contenant les informations que tu veux recopié porte le meme nom dans les deux classeurs sources.
    Enfin dit moi si le résultat attendu est celui que tu escomptait. si cela ne vas pas, mets en piece jointe les deux classeurs sources, ton classeur destination avec le resultat attendu sur la feuille recapitulatif.
    Fichiers attachés Fichiers attachés

  7. #7
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2013
    Messages : 26
    Points : 3
    Points
    3
    Par défaut
    bonjour ,

    Je comprends mieux maintenant, avant mes deux classeurs sources ne portaient pas le même nom. mais le fichier joint n'est pas une macro c'est un fichier excel.

Discussions similaires

  1. Macro pour récupérer des données pour alimenter un fichier récapitulatif
    Par amateurvba dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 20/03/2013, 12h23
  2. Boucler sur le nom des feuilles pour récupérer des données
    Par Vincent32 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 29/02/2012, 18h11
  3. Réponses: 1
    Dernier message: 01/04/2010, 23h23
  4. récupérer des valeurs pour une semaine donnée
    Par duck54 dans le forum Requêtes
    Réponses: 1
    Dernier message: 30/05/2006, 02h13
  5. cherche module ou langage pour récupérer des données audio..
    Par Ry_Yo dans le forum Langages de programmation
    Réponses: 5
    Dernier message: 12/05/2003, 18h44

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