XL 2016 Transfer de donnees avec clé d'entrée a la date

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

richardlion

XLDnaute Occasionnel
Bonjour a tous, en Pj vous trouverez un fichier dont la macro avec un clic droit sur une ligne du 1er tableau de la feuille HISTORIQUE TCD transfère des données de plusieurs tableaux structurés vers la feuille SYNTHESE, avec comme clé d'entrée, la date et le nom du fichier TCD ZERO VENTE 1 ET TCD FS1. je souhaiterais que cette meme macro puisse faire le transfère uniquement avec la clé d'entrée date, car tous les tableaux structurés qui viendront se rajouter a ma feuille HISTORIQUE TCD se nomme uniquement TCD ZERO VENTE et TCD FS sans numero, idem pour la feuille synthese le nom des pavés porteront le meme nom sans numero, donc est il possible de modifier la macro avec uniquement la date comme clé d'entrée. a votre disposition pour échange
 

Pièces jointes

Bonjour richardlion, le forum,

Si vous voulez que dans la feuille HISTORIQUE TCD un tableau soit repéré par un nom en 1ère cellule ET la date au dessus eh bien mettez des dates différentes quand les noms sont les mêmes.

Il suffit au départ d'effacer toutes les couleurs jaunes dans la feuille SYNTHESE :
VB:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Target.Count > 1 Or Intersect(Target, Range(ListObjects(1).Name)) Is Nothing Then Exit Sub
Dim c As Range, LO As ListObject, cc As Range, col%
Sauvegarde Target.Row
Cancel = True
For Each c In Sheets("SYNTHESE").UsedRange.Columns("D:F").Cells
    If IsDate(c) Then c(2).Resize(7).Interior.ColorIndex = xlNone 'RAZ sous les dates
Next c
For Each LO In ListObjects
    Set c = LO.Range(Target.Row - ListObjects(1).Range.Row + 1, 1)
    Set cc = Sheets("SYNTHESE").Columns(1).Find(LO.Range(1), , xlValues, xlWhole)
    col = Application.Match(CLng(CDate(LO.Range(0, 1))), cc.EntireRow, 0) 'recherche la colonne de la date
    cc(2, col).Resize(8) = Application.Transpose(c(1, 2).Resize(, 8))
    cc(2, col).Resize(7).Interior.Color = vbYellow
Next LO
MsgBox "Feuille SYNTHESE mise à jour"
End Sub
A+
 

Pièces jointes

Bonjour richardlion, le forum,

Si vous voulez que dans la feuille HISTORIQUE TCD un tableau soit repéré par un nom en 1ère cellule ET la date au dessus eh bien mettez des dates différentes quand les noms sont les mêmes.

Il suffit au départ d'effacer toutes les couleurs jaunes dans la feuille SYNTHESE :
VB:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Target.Count > 1 Or Intersect(Target, Range(ListObjects(1).Name)) Is Nothing Then Exit Sub
Dim c As Range, LO As ListObject, cc As Range, col%
Sauvegarde Target.Row
Cancel = True
For Each c In Sheets("SYNTHESE").UsedRange.Columns("D:F").Cells
    If IsDate(c) Then c(2).Resize(7).Interior.ColorIndex = xlNone 'RAZ sous les dates
Next c
For Each LO In ListObjects
    Set c = LO.Range(Target.Row - ListObjects(1).Range.Row + 1, 1)
    Set cc = Sheets("SYNTHESE").Columns(1).Find(LO.Range(1), , xlValues, xlWhole)
    col = Application.Match(CLng(CDate(LO.Range(0, 1))), cc.EntireRow, 0) 'recherche la colonne de la date
    cc(2, col).Resize(8) = Application.Transpose(c(1, 2).Resize(, 8))
    cc(2, col).Resize(7).Interior.Color = vbYellow
Next LO
MsgBox "Feuille SYNTHESE mise à jour"
End Sub
A+
Bonjour Job 75 merci pour votre fichier, je l'ai testé sur mon fichier test mais j'ai toujours un debogage, j'ai cherché la raison sans comprendre, je vous joint mon fichierhttps://www.cjoint.com/c/OCxoeGL0uPe pour mieux comprendre
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour