XL 2010 Faire communiquer 2 tableaux structurés sur 2 feuilles

Orson83

XLDnaute Impliqué
Bonjour à toutes et tous,
Je vous sollicite, car je ne parviens pas à faire communiquer 2 tableaux structurés. En effet, ils sont placés sur 2 pages différentes et il y a un décalage de 2 lignes dans la feuille "Récap". L'idée, c'est que le tableau "Récap" se complète automatiquement grâce au tableau "Planning".
Je vous remercie par avance pour votre aide👍
Je joins mon fichier exemple dans ce fil.

PS : j'ai aussi un petit problème pour trier la liste déroulante (> Factures > cellule J5)o_O

Orson83
 

Pièces jointes

  • TS décalé V1.xlsm
    30.9 KB · Affichages: 9
Dernière édition:

Orson83

XLDnaute Impliqué
Bonjour,
Ton tableau corrigé
Bonjour @gbinforme, le forum,
Merci pour cette proposition👍
Bizarrement, quand j'ajoute 1 ligne dans ma feuille "Planning", le tableau "Récap" ne se complète pas.
Effectivement, en allongeant le tableau du Récap, cela fonctionne, mais dans l'idée, j'aurais souhaité qu'il s'alimente sans avoir à intervenir dessus :)
Au cas où, tu aurais une solution pour la liste déroulante en "Factures J5" ? (ordre alphabétique)
Je joins mon nouveau fichier V2.
 

Pièces jointes

  • TS décalé V2.xlsm
    32 KB · Affichages: 7
Dernière édition:

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Orson, Gbinforme,
Dans un tableau structuré les formules se propagent sur toutes les lignes mais pas au delà du tableau.
Serait ce possible d'agrandir le tableau Recap ? Dans ce cas le problème serait résolu sans autre intervention.
 

Pièces jointes

  • TS décalé V2.xlsm
    42.2 KB · Affichages: 3

job75

XLDnaute Barbatruc
Bonjour Orson83, gbinforme, sylvanu,

Voyez le fichier joint et cette macro dans le code de la feuille "Récap" :
VB:
Private Sub Worksheet_Activate()
Dim d As Object, tablo, i&, resu(), x$, n&
Set d = CreateObject("Scripting.Dictionary")
d.CompareMode = vbTextCompare 'la casse est ignorée
With [TabRecap] 'tableau structuré
    tablo = .Resize(, 4) 'matrice,plus rapide
    For i = 1 To UBound(tablo)
        d(tablo(i, 1)) = tablo(i, 4) 'mémorise le Type paiement
    Next i
    tablo = [TabPL].Resize(, 7) 'matrice,plus rapide
    ReDim resu(1 To UBound(tablo), 1 To 4)
    For i = 1 To UBound(tablo)
        x = tablo(i, 1)
        If x <> "" Then
            n = n + 1
            resu(n, 1) = x
            resu(n, 2) = tablo(i, 5)
            resu(n, 3) = Format(tablo(i, 6), "d/m/yy") & " " & Format(tablo(i, 7), "d/m/yy")
            resu(n, 4) = d(x) 'récupère le Type paiement
        End If
    Next i
    If n Then .Resize(n, 4) = resu 'restitution
    If n < .Rows.Count Then If Not .ListObject.DataBodyRange Is Nothing Then .Rows(n + 1).Resize(.Rows.Count - n).Delete xlUp 'RAZ en desssous
End With
End Sub
Elle se déclenche automatiquement quand on active la feuille.

Bien noter que les Types paiement déjà entrés sont mémorisés et récupérés quelque soit le classement dans la feuille "Planning".

A+
 

Pièces jointes

  • TS décalé V3.xlsm
    37.9 KB · Affichages: 5

Orson83

XLDnaute Impliqué
Bonjour Orson83, gbinforme, sylvanu,

Voyez le fichier joint et cette macro dans le code de la feuille "Récap" :
VB:
Private Sub Worksheet_Activate()
Dim d As Object, tablo, i&, resu(), x$, n&
Set d = CreateObject("Scripting.Dictionary")
d.CompareMode = vbTextCompare 'la casse est ignorée
With [TabRecap] 'tableau structuré
    tablo = .Resize(, 4) 'matrice,plus rapide
    For i = 1 To UBound(tablo)
        d(tablo(i, 1)) = tablo(i, 4) 'mémorise le Type paiement
    Next i
    tablo = [TabPL].Resize(, 7) 'matrice,plus rapide
    ReDim resu(1 To UBound(tablo), 1 To 4)
    For i = 1 To UBound(tablo)
        x = tablo(i, 1)
        If x <> "" Then
            n = n + 1
            resu(n, 1) = x
            resu(n, 2) = tablo(i, 5)
            resu(n, 3) = Format(tablo(i, 6), "d/m/yy") & " " & Format(tablo(i, 7), "d/m/yy")
            resu(n, 4) = d(x) 'récupère le Type paiement
        End If
    Next i
    If n Then .Resize(n, 4) = resu 'restitution
    If n < .Rows.Count Then If Not .ListObject.DataBodyRange Is Nothing Then .Rows(n + 1).Resize(.Rows.Count - n).Delete xlUp 'RAZ en desssous
End With
End Sub
Elle se déclenche automatiquement quand on active la feuille.

Bien noter que les Types paiement déjà entrés sont mémorisés et récupérés quelque soit le classement dans la feuille "Planning".

A+
Bonsoir @job75, le fil,
Merci pour cette proposition, je regarderai lundi dans la journée.
Bon weekend 😉
 

Orson83

XLDnaute Impliqué
Bonjour Orson, Gbinforme,
Dans un tableau structuré les formules se propagent sur toutes les lignes mais pas au delà du tableau.
Serait ce possible d'agrandir le tableau Recap ? Dans ce cas le problème serait résolu sans autre intervention.
Bonsoir @sylvanu, le fil,
Merci pour cette proposition, je regarderai lundi dans la journée.
Bon weekend 😉
 
Dernière édition:

job75

XLDnaute Barbatruc
Pour la feuille "Factures" on utilisera cette macro :
VB:
Private Sub Worksheet_Activate()
With Columns(1)
    .Clear
    [TabPL].Columns(1).Copy .Cells(1)
    .Sort .Cells, xlAscending, Header:=xlNo 'tri
End With
End Sub
qui alimente la colonne A quand la feuille est activée.

Formule de validation puisque vous aimez INDIRECT :
Code:
=INDIRECT("A1:A"&MAX(1;NBVAL(A:A)))
 

Pièces jointes

  • TS décalé V4.xlsm
    40.9 KB · Affichages: 3

Orson83

XLDnaute Impliqué
Pour la feuille "Factures" on utilisera cette macro :
VB:
Private Sub Worksheet_Activate()
With Columns(1)
    .Clear
    [TabPL].Columns(1).Copy .Cells(1)
    .Sort .Cells, xlAscending, Header:=xlNo 'tri
End With
End Sub
qui alimente la colonne A quand la feuille est activée.

Formule de validation puisque vous aimez INDIRECT :
Code:
=INDIRECT("A1:A"&MAX(1;NBVAL(A:A)))
Merci @job75, le fil,
Je regarderai cela lundi.
Je suis de sortie avec ma belle 😁
 

Orson83

XLDnaute Impliqué
Bonjour Orson, Gbinforme,
Dans un tableau structuré les formules se propagent sur toutes les lignes mais pas au delà du tableau.
Serait ce possible d'agrandir le tableau Recap ? Dans ce cas le problème serait résolu sans autre intervention.
Bonjour le fil,
Merci pour ces propositions que j'ai adaptées en fonction de toutes les réponses obtenues.
@gbinforme pour les formules de liaison entre les tableaux
@sylvanu pour son intervention
@job75 pour ses réponses pertinentes
J'ai finalement mixé vos solutions pour résoudre mon problème.
Bonne journée à tous ;)
 

Orson83

XLDnaute Impliqué
Pour la feuille "Factures" on utilisera cette macro :
VB:
Private Sub Worksheet_Activate()
With Columns(1)
    .Clear
    [TabPL].Columns(1).Copy .Cells(1)
    .Sort .Cells, xlAscending, Header:=xlNo 'tri
End With
End Sub
qui alimente la colonne A quand la feuille est activée.

Formule de validation puisque vous aimez INDIRECT :
Code:
=INDIRECT("A1:A"&MAX(1;NBVAL(A:A)))
@job75,
Je rencontre un problème dans la gestion du tri de la liste. Comme cette question n'est pas propre à ce thread, j'en ai créé un autre ici.
Bonne soirée.
Orson83
 

Discussions similaires

Statistiques des forums

Discussions
315 098
Messages
2 116 189
Membres
112 679
dernier inscrit
Yupanki