7 tableaux dans un seul nouveau tableau, alimenté automatiqmt.

Reine des tartes Messages postés 21 Statut Membre -  
 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"...
A voir également:

8 réponses

WeaponEDGE
 
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.
1
Reine des tartes
 
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".
1
WeaponEDGE
 
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.
0
Reine des tartes
 
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 ?
1
manu manu manu Messages postés 283 Statut Membre 32
 
il faudra lancer la macro à chaque fois je pense. Mais vous pouvez créer un bouton dans votre onglet récap pour lancer la macro
0
WeaponEDGE
 
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.
0
WeaponEDGE
 
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Reine des tartes Messages postés 21 Statut Membre
 
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.
0
WeaponEDGE
 
Je peux vous créer une macro pour faire ça.

Cependant j'aurais besoin de savoir sur quel ligne se situent les titres des colonnes.
0
Reine des tartes
 
A part le nombre de lignes total, la structure de base des tableaux est la même sur chacun des 7 onglets :
- Titres des colonnes en ligne 1,
- Nombre de colonnes :18 (de A à R).
Merci votre aide.
0
foo
 
Bonjour

avec un model de ton fichier ca serait plus simple

A+

Maurice
0
Reine des tartes
 
Avec toutes ces infos je devrais y arriver ! Merci encore et bonne journée.
0