7 tableaux dans un seul nouveau tableau, alimenté automatiqmt.
Reine des tartes
Messages postés
21
Statut
Membre
-
Reine des tartes -
Reine des tartes -
Bonjour,
Dans 7 feuillets d'un même classeur, j'ai créé pour 7 collègues un tableau identique (même nombre et intitulés de colonnes) et maintenant je cherche à regrouper sur un 8ème feuillet tous ces tableaux en un seul, qui soit automatiquement alimenté à partir des 7 autres, car bien sûr le nombre de lignes dans chacun des 7 tableaux évolue au fil du temps.
Faut-il obligatoirement passer par une macro ? Je suis novice en la matière et ne suis pas arrivée à créer une "feuille de calcul macro" dans laquelle mettre une formule "prête à l'emploi" dans le "module"...
Dans 7 feuillets d'un même classeur, j'ai créé pour 7 collègues un tableau identique (même nombre et intitulés de colonnes) et maintenant je cherche à regrouper sur un 8ème feuillet tous ces tableaux en un seul, qui soit automatiquement alimenté à partir des 7 autres, car bien sûr le nombre de lignes dans chacun des 7 tableaux évolue au fil du temps.
Faut-il obligatoirement passer par une macro ? Je suis novice en la matière et ne suis pas arrivée à créer une "feuille de calcul macro" dans laquelle mettre une formule "prête à l'emploi" dans le "module"...
A voir également:
- 7 tableaux dans un seul nouveau tableau, alimenté automatiqmt.
- Tableau word - Guide
- Photofiltre 7 - Télécharger - Retouche d'image
- Trier un tableau excel - Guide
- Comment imprimer un tableau excel sur une seule page - Guide
- Clé windows 7 - Guide
8 réponses
Bonjour,
Voici le code :
Sub Regroupement()
Nb_Feuille = Worksheets.Count
x = 2
For i = 2 To Nb_Feuille
Nb_Ligne = Sheets(i).Cells(65536, 1).End(xlUp).Row
Nb_Colonne = Sheets(i).Cells(1, 256).End(xlToLeft).Column
For u = 2 To Nb_Ligne
For Num = 1 To Nb_Colonne
Sheets(1).Cells(x, Num) = Sheets(i).Cells(u, Num)
Next Num
x = x + 1
Next u
Next i
End Sub
Avant de démarer la Macro assurez vous qu'il n'y a aucune donnée excepté les titres dans votre feuille récapitulative.
Placer la Feuille récapitulative en première position en partant de la gauche.
La Macro est évolutive c'est à dire qu'elle va calculer le nombre de feuille et de colonne de chaque tableau. De ce fait si vous devez rajouter une feuille supplémentaire ou si les tableaux doivent avoir une ou plusieurs colonnes supplémentaire, la Macro les prendra en compte.
Faites attention de bien armoniser vos tableaux. S'il y en à un avec 3 colonnes et un autres avec 4 vos données seront en décallage.
Voici le code :
Sub Regroupement()
Nb_Feuille = Worksheets.Count
x = 2
For i = 2 To Nb_Feuille
Nb_Ligne = Sheets(i).Cells(65536, 1).End(xlUp).Row
Nb_Colonne = Sheets(i).Cells(1, 256).End(xlToLeft).Column
For u = 2 To Nb_Ligne
For Num = 1 To Nb_Colonne
Sheets(1).Cells(x, Num) = Sheets(i).Cells(u, Num)
Next Num
x = x + 1
Next u
Next i
End Sub
Avant de démarer la Macro assurez vous qu'il n'y a aucune donnée excepté les titres dans votre feuille récapitulative.
Placer la Feuille récapitulative en première position en partant de la gauche.
La Macro est évolutive c'est à dire qu'elle va calculer le nombre de feuille et de colonne de chaque tableau. De ce fait si vous devez rajouter une feuille supplémentaire ou si les tableaux doivent avoir une ou plusieurs colonnes supplémentaire, la Macro les prendra en compte.
Faites attention de bien armoniser vos tableaux. S'il y en à un avec 3 colonnes et un autres avec 4 vos données seront en décallage.
Merci weaponedge pour cette macro. Je ne sais pas quand je vais pouvoir m'occuper de cette tâche et elle risque de me prendre du temps car il me faut apprendre comment faire une macro... Je reviendrai vers vous plus tard si besoin et sinon je passerai le statut de mon sujet en "résolu".
Bonjour,
Je vais vous donner les premières étapes pour installer et utiliser la macro.
Première chose à savoir c'est qu'une Macro débutes toujours par SUB et se termine toujours par END SUB (Il existe aussi les fonction mais ça c'est une autre histoire.
Ouvrez votre fichier sur lequel on va installer la macro.
Pour aller dans les coulisses des Macros ou plus précisément dans le Visual Basic Editor, il vous suffit d'appuyer sur Alt + F11 lors que vous êtes sur Excel.
Une fenêtre va apparaitre intitulée « Microsoft Visual basic for Applications » suivi du nom de votre fichier.
A l'intérieur de cette fenêtre, 2 autres doivent être ouverte. Une intitulée « Project - VBAProject » et l'autre « Properties » (ou Propriétés)
Si la première n'est pas présente appuyez sur Ctrl + R pour la faire apparaitre.
Dans cette fenêtre sont listés tous les fichiers ouvert dans Excel.
Chaque fichier est représenté dans un répertoirte appelé « VBAProject(NON DU FICHIER) »
Dans ce répertoire il y a un sous répertoire appelé « Microsoft Excel Objects » dans lequel sont listés tous les onglets du fichier concerné et en dernier une feuille appelé « ThisWorkbook »
Faites un Double Clic sur cette feuille. Une page blanche va alors s'ouvrir dans une fenêtre.
Effectuez un copier-coller de la macro que je vous ai mentionné dans l'autre message (Copier bien du SUB jusqu'au END SUB)
Fermez la fenêtre « Microsoft Visual basic for Applications »
Retournez maintenant sur votre feuille Excel sur le premier Onglet (celui qui doit regrouper toutes les données)
Insérer un bouton ou sinon insérez une image trouvé sur internet par exemple.
Effectuez un clic droit sur l'image ou le bouton et sélectionner « assigner une macro »
Une fenêtre va s'ouvrir avec une liste de Macros. Sélectionnez « Regroupement »
Puis cliquez sur « OK »
Cliquez n'importe où sur la feuille pour désélectionner l'image ou le bouton.
Maintenant celui-ci est actif
Cliquez dessus
La macro va effectuer sont travail.
Je vais vous donner les premières étapes pour installer et utiliser la macro.
Première chose à savoir c'est qu'une Macro débutes toujours par SUB et se termine toujours par END SUB (Il existe aussi les fonction mais ça c'est une autre histoire.
Ouvrez votre fichier sur lequel on va installer la macro.
Pour aller dans les coulisses des Macros ou plus précisément dans le Visual Basic Editor, il vous suffit d'appuyer sur Alt + F11 lors que vous êtes sur Excel.
Une fenêtre va apparaitre intitulée « Microsoft Visual basic for Applications » suivi du nom de votre fichier.
A l'intérieur de cette fenêtre, 2 autres doivent être ouverte. Une intitulée « Project - VBAProject » et l'autre « Properties » (ou Propriétés)
Si la première n'est pas présente appuyez sur Ctrl + R pour la faire apparaitre.
Dans cette fenêtre sont listés tous les fichiers ouvert dans Excel.
Chaque fichier est représenté dans un répertoirte appelé « VBAProject(NON DU FICHIER) »
Dans ce répertoire il y a un sous répertoire appelé « Microsoft Excel Objects » dans lequel sont listés tous les onglets du fichier concerné et en dernier une feuille appelé « ThisWorkbook »
Faites un Double Clic sur cette feuille. Une page blanche va alors s'ouvrir dans une fenêtre.
Effectuez un copier-coller de la macro que je vous ai mentionné dans l'autre message (Copier bien du SUB jusqu'au END SUB)
Fermez la fenêtre « Microsoft Visual basic for Applications »
Retournez maintenant sur votre feuille Excel sur le premier Onglet (celui qui doit regrouper toutes les données)
Insérer un bouton ou sinon insérez une image trouvé sur internet par exemple.
Effectuez un clic droit sur l'image ou le bouton et sélectionner « assigner une macro »
Une fenêtre va s'ouvrir avec une liste de Macros. Sélectionnez « Regroupement »
Puis cliquez sur « OK »
Cliquez n'importe où sur la feuille pour désélectionner l'image ou le bouton.
Maintenant celui-ci est actif
Cliquez dessus
La macro va effectuer sont travail.
Question bête (digne de Reine des tartes !) : est-ce qu'il suffit d'avoir créé la macro pour que la mise à jour du tableau (celui qui regroupe tous les autres tableaux) soit ensuite automatique, c'est à dire qu'à chaque fois qu'on touchera à un des tableaux, cette action sera automatiquement reportée dans le tableau de regroupement ? Ou bien est-ce qu'il faudra lancer la macro à chaque fois que je voudrai mettre à jour ce tableau de regroupement des autres tableaux ?
Il y a 2 possibilité soit vous insérez un bouton ou une image sur La Feuille RECAP et vous cliquez dessus à chaque fois que vous voulez faire une mise à jour de la Feuille.
Soit vous installez la macro dans la feuille elle même.
Je m'explique :
Si vous suivez la procédure que j'ai écrit plus haut un moment donné je vous dit de double cliquer sur le fichier "ThiWorbook".
A la place doucble cliquer sur le répertoire qui porte le nom de la Feuille RECAP.
Idem une page blanche va apparaitre
Au dessus de cette page blanche il y a 2 menu déroulant.
Sur celui de gauche sélectionnez "Worksheet"
Sur celui de droite sélectionner "ACTIVATE"
Vous constaterez qu'il y a la Macro ci - dessous qui c'est créé automatiquement
Private Sub Worksheet_Activate()
End Sub
Cependant il n'y a aucun contenu dedans.
Faites un copier coller de des donnés ci dessous et insérez les entre la première ligne et le END SUB
Long_Tab = Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row
Rows("2:2").Select
Range(Rows(2), Rows(Long_Tab)).Select
Selection.Delete Shift:=xlUp
Range("A2").Select
Nb_Feuille = Worksheets.Count
x = 2
For i = 2 To Nb_Feuille
Nb_Ligne = Sheets(i).Cells(65536, 1).End(xlUp).Row
Nb_Colonne = Sheets(i).Cells(1, 256).End(xlToLeft).Column
For u = 2 To Nb_Ligne
For Num = 1 To Nb_Colonne
Sheets(1).Cells(x, Num) = Sheets(i).Cells(u, Num)
Next Num
x = x + 1
Next u
Next i
Enregistrez votre fichier.
Maintenant à chaque fois que vous cliquerez sur la Feuille RECAP la macro s'activera automatiquement
Attention : Si la feuille est déjà sélectionné il faudra cliquer sur une autre feuille et revenir sur la Feuille RECAP pour activer de nouveau la macro.
Voilà vous avez 2 solutions, à vous de choisir.
Soit vous installez la macro dans la feuille elle même.
Je m'explique :
Si vous suivez la procédure que j'ai écrit plus haut un moment donné je vous dit de double cliquer sur le fichier "ThiWorbook".
A la place doucble cliquer sur le répertoire qui porte le nom de la Feuille RECAP.
Idem une page blanche va apparaitre
Au dessus de cette page blanche il y a 2 menu déroulant.
Sur celui de gauche sélectionnez "Worksheet"
Sur celui de droite sélectionner "ACTIVATE"
Vous constaterez qu'il y a la Macro ci - dessous qui c'est créé automatiquement
Private Sub Worksheet_Activate()
End Sub
Cependant il n'y a aucun contenu dedans.
Faites un copier coller de des donnés ci dessous et insérez les entre la première ligne et le END SUB
Long_Tab = Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row
Rows("2:2").Select
Range(Rows(2), Rows(Long_Tab)).Select
Selection.Delete Shift:=xlUp
Range("A2").Select
Nb_Feuille = Worksheets.Count
x = 2
For i = 2 To Nb_Feuille
Nb_Ligne = Sheets(i).Cells(65536, 1).End(xlUp).Row
Nb_Colonne = Sheets(i).Cells(1, 256).End(xlToLeft).Column
For u = 2 To Nb_Ligne
For Num = 1 To Nb_Colonne
Sheets(1).Cells(x, Num) = Sheets(i).Cells(u, Num)
Next Num
x = x + 1
Next u
Next i
Enregistrez votre fichier.
Maintenant à chaque fois que vous cliquerez sur la Feuille RECAP la macro s'activera automatiquement
Attention : Si la feuille est déjà sélectionné il faudra cliquer sur une autre feuille et revenir sur la Feuille RECAP pour activer de nouveau la macro.
Voilà vous avez 2 solutions, à vous de choisir.
Bonjour,
Les macros sont inutiles. Dans ce cas là il y a beaucoup plus simple.
Supposons que les 7 onglets sont nommés A,B,C,D,E,F,G
Si vous voulez récupérer la sommes des données saisient en cellule B2 :
Dans votre Onglet 8 positionner vous en cellule B2 puis saisissez :
='A'!B2+'B'!B2+'C'!B2+'D'!B2+'E'!B2+'F'!B2+'G'!B2
Cette formule permettra de sommer toutes les données, en revanche pour les titres soit vous les saisissez mauellement soit vous saisissez juste :
='A'!B1
Si le titre est en B1
Les macros sont inutiles. Dans ce cas là il y a beaucoup plus simple.
Supposons que les 7 onglets sont nommés A,B,C,D,E,F,G
Si vous voulez récupérer la sommes des données saisient en cellule B2 :
Dans votre Onglet 8 positionner vous en cellule B2 puis saisissez :
='A'!B2+'B'!B2+'C'!B2+'D'!B2+'E'!B2+'F'!B2+'G'!B2
Cette formule permettra de sommer toutes les données, en revanche pour les titres soit vous les saisissez mauellement soit vous saisissez juste :
='A'!B1
Si le titre est en B1
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Merci pour votre réponse rapide, mais elle ne résoud pas mon problème; j'ai dû mal m'exprimer, alors j'essaye d'être plus claire : ce que je veux c'est faire en sorte de regrouper les tableaux dans un seul nouveau tableau, qui contiendrait non pas la somme des données mais toutes les lignes de tous les tableaux.
Pour faire plus simple, imaginons qu'au lieu de 7 onglets j'en ai seulement 2, et que le tableau sur l'onglet 1 contienne 50 lignes, et que le tableau sur l'onglet 2 contienne 25 lignes. Ce que je veux c'est générer sur l'onglet 3 un tableau contenant les 75 lignes, et par ailleurs, faire en sorte que ce tableau sur l'onglet 3 s'alimente automatiquement à partir des tableaux onglets 1 et 2 lorsque dans ceux-ci on ajoute des lignes. J'espère être plus claire, merci à vous pour votre aide.
Pour faire plus simple, imaginons qu'au lieu de 7 onglets j'en ai seulement 2, et que le tableau sur l'onglet 1 contienne 50 lignes, et que le tableau sur l'onglet 2 contienne 25 lignes. Ce que je veux c'est générer sur l'onglet 3 un tableau contenant les 75 lignes, et par ailleurs, faire en sorte que ce tableau sur l'onglet 3 s'alimente automatiquement à partir des tableaux onglets 1 et 2 lorsque dans ceux-ci on ajoute des lignes. J'espère être plus claire, merci à vous pour votre aide.