Compiler les données de 3 onglets
Jeanne
-
Jeanne -
Jeanne -
Bonjour à tous,
je suis sur Excel 2010
Je dispose d'un fichier comportant de multiples onglets, dont 3 (les 3 premiers) étant des bases avec le même nombre de colonnes (et la même première ligne avec les entêtes de colonnes) mais un nombre de lignes variables. Je dispose également d'un onglet "CONSO" comportant ces mêmes colonnes et entêtes.
Je voudrais consolider cest 3 premiers onglets dans l'onglet "CONSO" pour pouvoir avoir une base et effectuer des TCD dessus.
J'ai bien essayé l'option de TCD qui permet de prendre en 3 onglets en source mais cette option ne permet de moduler le TCD que sur les valeurs de la première ligne et colonne.
j'en déduis donc qu'il me faut compiler les 3 onglets voulus dans l'onglet "CONSO" créé pour l'occasion afin de pouvoir faire un TCD sur cette base complète.
Cependant je voudrais automatiser cette partie afin de ne pas avoir à refaire plusieurs copier-coller à chaque modification d'un des onglets.
Après avoir un peu recherché sur ce sujet, je pense qu'il est nécessaire de faire une macro.
Quelqu'un peut-il m'aider à construire une macro assez simple qui compilerait à la suite les données de ces onglets dans l'onglet "CONSO".
Je suis désolé mais je ne peux pas vraiment vous joindre le fichier pour que vous puissiez travailler dessus car il s'agit de données confidentielles et de plus j'aimerais bien comprende cette macro pour la réexpliquer derrière.
merci d'avance,
je suis sur Excel 2010
Je dispose d'un fichier comportant de multiples onglets, dont 3 (les 3 premiers) étant des bases avec le même nombre de colonnes (et la même première ligne avec les entêtes de colonnes) mais un nombre de lignes variables. Je dispose également d'un onglet "CONSO" comportant ces mêmes colonnes et entêtes.
Je voudrais consolider cest 3 premiers onglets dans l'onglet "CONSO" pour pouvoir avoir une base et effectuer des TCD dessus.
J'ai bien essayé l'option de TCD qui permet de prendre en 3 onglets en source mais cette option ne permet de moduler le TCD que sur les valeurs de la première ligne et colonne.
j'en déduis donc qu'il me faut compiler les 3 onglets voulus dans l'onglet "CONSO" créé pour l'occasion afin de pouvoir faire un TCD sur cette base complète.
Cependant je voudrais automatiser cette partie afin de ne pas avoir à refaire plusieurs copier-coller à chaque modification d'un des onglets.
Après avoir un peu recherché sur ce sujet, je pense qu'il est nécessaire de faire une macro.
Quelqu'un peut-il m'aider à construire une macro assez simple qui compilerait à la suite les données de ces onglets dans l'onglet "CONSO".
Je suis désolé mais je ne peux pas vraiment vous joindre le fichier pour que vous puissiez travailler dessus car il s'agit de données confidentielles et de plus j'aimerais bien comprende cette macro pour la réexpliquer derrière.
merci d'avance,
A voir également:
- Compiler les données de 3 onglets
- Fuite données maif - Guide
- Ai suite 3 - Télécharger - Optimisation
- Supprimer les données de navigation - Guide
- Rouvrir les onglets fermés chrome - Guide
- Picasa 3 - Télécharger - Albums photo
7 réponses
Bonjour
Quand vous dites compiler les données entendez-vous additionneer les 3 feuilles dans une colonne ou récuppérer les trois informations dans des colonnes différentes
Il y a conbien de ligne dans votre fichier ?
Quand vous dites compiler les données entendez-vous additionneer les 3 feuilles dans une colonne ou récuppérer les trois informations dans des colonnes différentes
Il y a conbien de ligne dans votre fichier ?
Merci de l'intérêt,
En fait je voudrais simplement concaténer les 3 onglets (des bases en quelques sortes) les uns au dessus des autres. Dans l'optique de me créer une "super" base sur laquelle je pourrai travailler avec des TCD.
Le premier onglet va de A5 à DU1174, le second de A2 à DU94 et le troisième de A2 à DU89. Mais des lignes sont susceptibles d'être rajoutées donc je voudrais que la macro reconnaisse également ce lignes pour les copier dans l'onglet de consolidation.
Au jour d'aujourd'hui cela me ferait une base de 1170+93+88 lignes, mais cela peut donc bouger.
En fait je voudrais simplement concaténer les 3 onglets (des bases en quelques sortes) les uns au dessus des autres. Dans l'optique de me créer une "super" base sur laquelle je pourrai travailler avec des TCD.
Le premier onglet va de A5 à DU1174, le second de A2 à DU94 et le troisième de A2 à DU89. Mais des lignes sont susceptibles d'être rajoutées donc je voudrais que la macro reconnaisse également ce lignes pour les copier dans l'onglet de consolidation.
Au jour d'aujourd'hui cela me ferait une base de 1170+93+88 lignes, mais cela peut donc bouger.
Bonjour Jeanne
Pouvez-vous me donner un fichier modéle anonymisé
allez sur cjoint.com pour créer un lien que vous copirez dans votre réponse
Il me faut le nom des feuilles à copier
le nom du fichier
le disque sur lequel le fichier est sauvegardé
le dossier et sous dossier si nescessaire
pour mettre ces infos dans la macrocommande
j'espére pouvoir vous aider n'étant pas un spécialiste du VBA
Pouvez-vous me donner un fichier modéle anonymisé
allez sur cjoint.com pour créer un lien que vous copirez dans votre réponse
Il me faut le nom des feuilles à copier
le nom du fichier
le disque sur lequel le fichier est sauvegardé
le dossier et sous dossier si nescessaire
pour mettre ces infos dans la macrocommande
j'espére pouvoir vous aider n'étant pas un spécialiste du VBA
Bonjour,
créer une "super" base sur laquelle je pourrai travailler avec des TCD.
Tes 3 onglets ont-ils une utilité ? Je suppose que oui
Dans ce cas, il n'est point nécessaire de créer un onglet de regroupement qui va doubler ta taille classeur alors que tu peux très facilement faire un TCD multi-onglets qui te permettra de faire tous les regroupements voulus.
des lignes sont susceptibles d'être rajoutées
Il te suffit de nommer tes plages de façon dynamique avec la fonction décaler pour ton TCD s'actualise sans souci.
Un petit exemple brut de fonderie :
https://www.cjoint.com/c/CCwj2Urj9xN
créer une "super" base sur laquelle je pourrai travailler avec des TCD.
Tes 3 onglets ont-ils une utilité ? Je suppose que oui
Dans ce cas, il n'est point nécessaire de créer un onglet de regroupement qui va doubler ta taille classeur alors que tu peux très facilement faire un TCD multi-onglets qui te permettra de faire tous les regroupements voulus.
des lignes sont susceptibles d'être rajoutées
Il te suffit de nommer tes plages de façon dynamique avec la fonction décaler pour ton TCD s'actualise sans souci.
Un petit exemple brut de fonderie :
https://www.cjoint.com/c/CCwj2Urj9xN
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour et merci pour vos réponses,
PHILOU, je vais essayer de faire un fichier anonyme. Cela va me prendre un peu de temps.
Gbinform, comme je le disais, j'ai essayé la technique du TCD sur plusieurs onglets mais cela ne convenait pas dans mon cas car ce TCD consolide en fontion de la première colonne et ligne de chaque référence, donc pas possible de lui demander de consolider selon des infos dans d'autres colonnes et repasser certaines en ligne de TCD, ce qui en fait un TCD peu malléable. De plus le TCD sur plusieurs feuilles peut consolider les nombres mais pas les colonnes qui contiennent des infos au format texte ou date.
On parle ici d'une "super base" qui n'atteindra jamais plus de 2000 lignes donc pas de risque que le fichier devienne si lourd à mon avis.
PHILOU, je vais essayer de faire un fichier anonyme. Cela va me prendre un peu de temps.
Gbinform, comme je le disais, j'ai essayé la technique du TCD sur plusieurs onglets mais cela ne convenait pas dans mon cas car ce TCD consolide en fontion de la première colonne et ligne de chaque référence, donc pas possible de lui demander de consolider selon des infos dans d'autres colonnes et repasser certaines en ligne de TCD, ce qui en fait un TCD peu malléable. De plus le TCD sur plusieurs feuilles peut consolider les nombres mais pas les colonnes qui contiennent des infos au format texte ou date.
On parle ici d'une "super base" qui n'atteindra jamais plus de 2000 lignes donc pas de risque que le fichier devienne si lourd à mon avis.
Bonjour,
Dans l'onglet "CONSO" tu mets cette macro et à chaque fois que tu accèdes à cette feuille tes 3 feuilles "Feuil1", "Feuil2", "Feuil3" (à modifier dans la macro avec tes noms propres) sont regroupées et tu mets ton TCD sur une autre feuille.
Toujours zen
La perfection est atteinte, non pas lorsqu'il n'y a plus rien à ajouter, mais lorsqu'il n'y a plus rien à retirer. Antoine de Saint-Exupéry
Dans l'onglet "CONSO" tu mets cette macro et à chaque fois que tu accèdes à cette feuille tes 3 feuilles "Feuil1", "Feuil2", "Feuil3" (à modifier dans la macro avec tes noms propres) sont regroupées et tu mets ton TCD sur une autre feuille.
Private Sub Worksheet_Activate()
Dim feu As Integer, lig As Long, nbl As Long, pos As Integer
Application.ScreenUpdating = False
Cells.ClearContents: lig = 2
For feu = 1 To Sheets.Count
Select Case Sheets(feu).Name ' noms onglets à regrouper
Case "Feuil1"
pos = 5
Case "Feuil2"
pos = 2
Case "Feuil3"
pos = 2
Case Else
pos = 0
End Select
If pos <> 0 Then
With Sheets(feu)
nbl = .Cells(.Rows.Count, 1).End(xlUp).Row - pos + 1
If [A1] = "" Then .Rows(pos).Copy Destination:=[A1]
.Rows(pos + 1).Resize(nbl).Copy Destination:=Rows(lig)
lig = lig + nbl - 1
End With
End If
Next feu
Application.ScreenUpdating = True
End Sub
Toujours zen
La perfection est atteinte, non pas lorsqu'il n'y a plus rien à ajouter, mais lorsqu'il n'y a plus rien à retirer. Antoine de Saint-Exupéry