TCD avec plusieurs plages de données sources

bonjour,

je n'arrive à trouver la bonne procédure pour réaliser un TCD à partir de 2 plages de données (qui ne sont pas identiques).

je vous joins un exemple de mon fichier:

8tcd.xlsx (8.04 Ko)

j'ai plusieurs investisseurs qui investissent sur différentes sociétés. (1er tableau)

Chaque société porte elle-même plusieurs projets (bleu, rouge...) (2ème tableau).

j'aimerais faire un TCD qui me dise:

Investisseur Société Matériel

A 1 Bleu-Rouge-vert

5 violet rouge gris

6 noir

suis-je clair?

merci de votre aide.

Bonjour,

Une proposition à étudier.

Cdlt.

29tcd.xlsx (13.84 Ko)

Bonjour Jean-Eric,

merci beaucoup. j'avais effectivement fait ça au départ, mais désolé j'ai oublié un paramètre je crois dans mon fichier de base, car en fait, plusieurs investisseurs peuvent se retrouver sur une même société.

j'ai refait mon tableau, on a B qui se retrouve sur société 1&2. ou le D qui est sur 2&4. et du coup je suis bloqué je crois avec le rechercheV.

13tcd-source.xlsx (8.33 Ko)

c'est la raison pour laquelle j'essayais plutôt de traiter mes 2 plages de données en même temps dans un TCD.

merci.

Bonjour,

Je te propose cette solution VBA afin de consolider tes 2 tableaux en 1.

A te relire.

Cdlt.

Option Explicit

Private Sub cmdConsolidate_Click()
Dim Cell As Range, c As Range
Dim firstAddress As String
Dim lRow As Long

    Application.ScreenUpdating = False

    lRow = 5

    If Not Me.ListObjects(3).DataBodyRange Is Nothing Then Me.ListObjects(3).DataBodyRange.Delete

    For Each Cell In Me.ListObjects(2).ListColumns(1).DataBodyRange
        With Me.ListObjects(1).ListColumns(2).DataBodyRange
            Set c = .Find(What:=Cell.Value, LookIn:=xlValues, Lookat:=xlWhole)
            If Not c Is Nothing Then
                firstAddress = c.Address
                Do
                    Me.Cells(lRow, 8) = c.Offset(0, -1).Value
                    Me.Cells(lRow, 9) = Cell.Value
                    Me.Cells(lRow, 10) = Cell.Offset(0, 1).Value
                    lRow = lRow + 1
                    Set c = .FindNext(c)
                Loop While Not c Is Nothing And c.Address <> firstAddress
            End If
        End With
    Next Cell

    Set c = Nothing

End Sub

c'est parfait! c'est exactement ça.

un grand merci Jean-Eric.

Rechercher des sujets similaires à "tcd plages donnees sources"