Manipulation tableau structuré

Bonjour à tous,

Je découvre la puissance d'excel depuis un mois...

Dans un classeur, j'ai 2 feuilles présentant des tableaux avec des données similaires (entre autres).

J'ai nommé ces 2 tableaux T1(F1) et T2(F2).

Dans une autre feuille F3, je décide ne prendre que les colonnes m'intéressant de T1 et T2 afin de construire un tableau croisé dynamique à partir de ces 2 tableaux.

J'ai donc dans F3 pour la première ligne:

T1[[#Tout][C1]] T1[[#Tout][C2]] ..... T2[[#Tout][C1]] T2[[#Tout][C2]]

Or ces tableaux n'ayant pas le même nombre de lignes. J'aurais pensé que Excel aurait repris l'intégralité de chaque colonne (à savoir les 5000 lignes pour T1 et les 250 lignes pour T2). Or je suis obligé d'entendre les sélections via le petit carré noir (donc de connaitre les dimensions des tableaux d'origine).

Je fais ce fichier afin d'automatiser les calculs à partir de ces extractions de données ce qui implique que le nombre de lignes de T1 et T2 sont variables; existe-t-il une méthode pour qu'Excel reprenne de manière automatique l'intégralité des colonnes dans ma feuille F3?

Merci pour votre aide.

David

Bonjour,

Un exemple de consolidation de 2 feuilles dans une 3ème. feuille.

Ctrl+a pour démarrer la procédure

A adapter suivant tes besoins avec la suppression de colonnes.

Peux-tu envoyer un fichier avec sa structure, des données significatives et le résultat attendu

Cdlt.

nb : prévu à l'origine pour création TCD en VBA

Option Explicit
Public Sub Consolidation()
'Le 11 novembre 2012 - Jean-Eric - Démarrage procédure = Ctrl+A
Dim sH_1 As Worksheet, sH_2 As Worksheet, sH_3 As Worksheet
Dim derCol As Integer, derLigA As Integer, derligB As Integer
Dim a As String, b As String
Dim Plage_1 As Range, Plage_2 As Range, Plage_3 As Range

    Set sH_1 = Worksheets("Feuil1")
    Set sH_2 = Worksheets("Feuil2")
    Set sH_3 = Worksheets("Feuil3")
'----------------------------------------------------------------------------------------
'Consolidation des données
    sH_1.Activate
    With sH_1
        derLigA = .Range("A" & Rows.Count).End(xlUp).Row
        derCol = .Cells(1, Cells.Columns.Count).End(xlToLeft).Column
        Set Plage_1 = .Range(Cells(1, 1), Cells(derLigA, derCol))
        a = sH_1.Name
    End With

    sH_2.Activate
    With sH_2
        derLigA = .Range("A" & Rows.Count).End(xlUp).Row
        derCol = .Cells(1, Cells.Columns.Count).End(xlToLeft).Column
        Set Plage_2 = .Range(Cells(2, 1), Cells(derLigA, derCol))
        b = sH_2.Name
    End With

    sH_3.Activate
    Cells.Select
    Selection.ClearContents
    Plage_1.Copy Destination:=Cells(1, 2)
    Cells(1, 1) = "Index"
    derLigA = Range("B" & Rows.Count).End(xlUp).Row
    Range(Cells(2, 1), Cells(derLigA, 1)) = a
    derLigA = Range("A" & Rows.Count).End(xlUp).Row
    Plage_2.Copy Destination:=Cells(derLigA + 1, 2)
    derligB = Range("B" & Rows.Count).End(xlUp).Row
    Range(Cells(derLigA + 1, 1), Cells(derligB, 1)) = b
    derCol = Cells(1, Cells.Columns.Count).End(xlToLeft).Column
    Set Plage_3 = Range(Cells(1, 1), Cells(derligB, derCol))
    'Plage_3.Select
    '---------> Création TCD en VBA suivant besoins
'----------------------------------------------------------------------------------------
End Sub
Rechercher des sujets similaires à "manipulation tableau structure"