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 :

rassembler plusieurs feuilles d'un classeur en une seule [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 45
    Points : 36
    Points
    36
    Par défaut rassembler plusieurs feuilles d'un classeur en une seule
    Bonjour,

    Je vais tenter d'expliquer mon cas... ^^

    Je travaille sous Excel 2007, où j'ai crée un classeur avec différentes feuilles.
    Chacune des feuilles contient un tableau, ayant les mêmes largeurs de colonnes.
    Il s'agit en effet d'un emploi du temps pour élèves où les différentes feuilles correspondent aux différents étages où nous intervenons.
    Ce fichier est rempli en début de semaine et est modifié tout au long de la semaine (remplacement de cours, annulation, élève retiré...)

    Dans un souci d'économie de papier lors de l'impression, je souhaiterai que tous les tableaux soient regroupés dans une même feuille ("récapitulatif" par exemple) du classeur, et que lorsque nous faisons une modification sur une des è premières feuilles, la 8ème se mette à jour en fonction de celles-ci.

    Ma question est donc la suivante, est-il possible de créer une macro pour exporter les tableaux des feuilles 1 à 7 vers la feuille "récapitulatif" et que ces tableaux se retrouvent tous à la suite sans espacement et qu'ils se mettent à jour en fonction des modifications apportées aux tableaux des feuilles 1 à 7 ?

    Je n'ai bien entendu jamais crée de macro, donc je ne pourrais pas comprendre pour l'instant tout le jargon complexe du codage des macros, mais si les étapes me sont expliquées je parviendrai à saisir le sens des choses.

    Voici le lien pour le fichier vierge :
    Emploi du temps


    Merci !
    Fichiers attachés Fichiers attachés

  2. #2
    Membre expérimenté Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Points : 1 512
    Points
    1 512
    Par défaut
    bonjour klash384 le forum tu as pas besoin de macro pour faire cela
    exemple en feuille recap.. en cellule a1 tu ecris

    =Pedopsy!A8 tu peus etirer vers le bas la formule pour gagner tu temps ect
    ou t'orienter vers un TCD
    SALUTATIONS

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 45
    Points : 36
    Points
    36
    Par défaut
    Merci pour l'astuce, mais ce n'est malheureusement pas ce que je recherche.
    Car lorsque j'étire cette formule, je me retrouve avec des 0 quand la case est vide, et le second soucis c'est que la mise en forme des tableaux n'est pas créée avec ceci (fusions des cellules, centrer, couleurs...)

    Étant donnée que je voudrais avoir plusieurs critères de copie en même temps c'est pour cela que je me suis demandé s'il n'était pas nécessaire de créer une macro.

    Par contre, qu'est-ce qu'un TCD ?

    Merci !

  4. #4
    Membre expérimenté Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Points : 1 512
    Points
    1 512
    Par défaut
    bonjour klash384 le forum
    pour faire simple
    dans chaque feuille sur la derniere ligne de couleur en cell A tu ecris quelque chose "fin de liste" un espace ce que tu veus..
    exemple sur la premiere feuille en A55
    bien sur sur la feuille recapitulatif tu ecris rien
    cela va permettre de selectionner la fin du tableau simplement

    tu mets un bouton sur la feuille recapitulatif
    le bouton tu le prends dans la boite a outils contrôles
    code bouton pour appeler la macro

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub CommandButton1_Click()
    essai5
    End Sub
    dans un module standard


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Option Explicit
    Sub essai5()
    Dim ws As Worksheet, i As String
    Application.ScreenUpdating = False
    Cells.Delete
    i = ActiveSheet.Name
    For Each ws In Worksheets
    If ws.Name <> "récapitulatif" Then
    Sheets(ws.Name).Activate
    Range("a1:e" & Range("a65536").End(xlUp).Row).Copy _
    Destination:=Sheets("récapitulatif").Range("A65536").End(xlUp)(1)
    End If: Next ws: Sheets(i).Select: [a1].Select: Columns("A:E").ColumnWidth = 18
    End Sub
    chaque fois que tu veus mettre jour click sur le bouton
    SALUTATIONS

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 45
    Points : 36
    Points
    36
    Par défaut
    Merci Laetitia pour ta réponse,

    je vais avoir besoin d'un peu d'aide étant donné que je suis un novice complet pour la création de macro sous excel.

    Peux tu m'expliquer (pas à pas) la procédure à suivre pour chacune des étapes ?

    Merci !!!



    Correctif : Je viens de trouver que le bouton que tu me demande d'appeler est un bouton de commande (ActiveX)
    J'ai donc réussi à entrer le code comme tu me l'as écrit ci dessus.
    Je rencontre juste un dernier problème.
    Lorsque je clique sur le bouton, la mise à jour des différents tableaux est niquelle ! C'est exactement ce que je voulais !
    Bref, le problème est que certaines largeur de colonnes et hauteur de ligne ne restent pas dans leur taille tel que dans les autres feuilles...
    J'ai aussi dans des cases blanches inséré les logos de mon association, et celles ci apparaissent dans des dimensions différentes et dans la première cellule du tableau il y en à une trentaine.
    Ce ne sont que des détails mais si tu as une solution, se serait très sympa !

    Et encore merci pour tout !!!

  6. #6
    Membre expérimenté Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Points : 1 512
    Points
    1 512
    Par défaut
    bonjour klash384 le forum
    essai comme cela. change la macro essai5 par celle la
    il mettras la largeur des colonnes apres le premier appel de la macro tu peus eventuellement supprimer les lignes de code rajoutées elle servent plus a rien elles sont signalées dans la macro
    pour la hauteur de ligne j'ai l'impression que c'est bon!! j'ai teste sous excel 2003

    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 essai5()
    Dim ws As Worksheet, i As String
    Application.ScreenUpdating = False
    Columns("A:E").ClearContents
    Columns("A:A").ColumnWidth = 18.43 'a supprimer
    Columns("B:B").ColumnWidth = 23.29 'a supprimer
    Columns("C:C").ColumnWidth = 17.43 'a supprimer
    Columns("D:D").ColumnWidth = 23.14 'a supprimer
    Columns("E:E").ColumnWidth = 7.29 'a supprimer
    i = ActiveSheet.Name
    For Each ws In Worksheets
    If ws.Name <> "récapitulatif" Then
    Sheets(ws.Name).Activate
     Range("a1:e" & Range("a65536").End(xlUp).Row).Copy _
    Destination:=Sheets("récapitulatif").Range("A65536").End(xlUp)(1)
    End If: Next ws: Sheets(i).Select: [a1].Select: Beep
    End Sub
    SALUTATIONS

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 45
    Points : 36
    Points
    36
    Par défaut
    Un grand merci à toi !
    Les solutions que tu m'as proposé fonctionnent impec' !
    Je vais maintenant tenter d'apprendre à utiliser par moi même les fonctionnalités des macros !


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

Discussions similaires

  1. [XL-2010] Grouper certaines feuilles d'un classeur sur une seule
    Par Celana dans le forum Macros et VBA Excel
    Réponses: 26
    Dernier message: 22/01/2015, 06h40
  2. [Toutes versions] Macro regroupant plusieurs classeurs dans une seule feuille
    Par lisandjo dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 23/04/2012, 07h52
  3. [XL-2007] Comparaison de données entre plusieurs feuilles d'un classeur
    Par Raphael39 dans le forum Excel
    Réponses: 8
    Dernier message: 02/07/2010, 22h54
  4. Enregistrement de plusieurs feuilles d'un classeur xls en csv
    Par supai dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 08/01/2010, 18h29
  5. Réponses: 7
    Dernier message: 25/09/2008, 14h51

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