XL 2016 VBA TCD : récupérer les données source grâce à un double clic

Eloiweb

XLDnaute Nouveau
Bonjour tout le monde,

je pense que ce sujet a déjà dû être traité mais comme je ne trouve pas la réponse, je me lance !

Grâce à une Macro VBA, je souhaite que lorsque je double clic dans une cellule d'un TCD, au lieu que Excel ouvre un onglet avec les données sources correspondantes, je puisse :
  • récupérer celles-ci dans un objet (tableau, range, ...)
  • les afficher dans un formulaire modifiable par l'utilisateur
  • enregistrer les données modifiées dans la source (tableau dans un autre onglet)
  • actualiser le TCD
Et je coince sur la première bullet point ... !!!

Un grand merci d'avance
Bien à vous,
Eloi
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil

Pas sur d'avoir tout compris
Mais avec ce que j'ai compris, j'ai pondu ceci
VB:
Sub Macro1()
Dim vArr, rng As Range
Dim p As PivotTable
Set p = ActiveSheet.PivotTables("Tableau croisé dynamique1") ' adapter le nom
vArr = p.TableRange2.Value2
Application.ScreenUpdating = False
Sheets.Add
Cells(1).Resize(UBound(vArr, 1), UBound(vArr, 2)) = vArr
Set rng = Cells(1).CurrentRegion
NomTableau = InputBox("Nom du tableau?")
ActiveSheet.ListObjects.Add(xlSrcRange, rng, , xlYes).Name = NomTableau
End Sub
NB: Code à lancer quand la feuille active est le TCD
=> adapter le nom du TCD dans le code VBA.
 

chris

XLDnaute Barbatruc
Bonjour à tous

Je n'ai pas compris la même chose

L'extraction par double clic d'un TCD ne déclenche pas d'événement en soi

Le seul événement est la création d'un nouvel onglet
Ta demande est assez particulière car elle suppose un TCD de structure assez simple, ce qui n'est pas le cas de la majorité des TCD, et sans sdoute aussi, une source triée comme le TCD sinon cela me parait plus difficile de modifier celle-ci depuis un userform présentant un extrait...

Donc
  • soit tu récupères ce qui est dans la nouvelle feuille que tu détruit au passage
  • soit tu interceptes le double clic et tu en déduis à quel(s) filtre(s) il correspond pour récupérer les données correspondantes dans la source
 

Eloiweb

XLDnaute Nouveau
Bonjour,

merci pour vos réponses.

J'ai finalement opté pour laisser l'onglet s'ouvrir automatiquement puis lire le tableau de données correspondant à la cellule du double clic dans le TCD, même si je trouve cela pas top (j'imaginais que l'on aurait pu facilement capter l'event et capturer un objet au vol sans afficher de nouvel onglet), mais le temps m'étais compté !

NOTA : pour modifier les donnée dans le userform puis réécriture dans les données source, j'ai juste insérer un id très pratique en XLS, le N° de ligne ;)

Merci pour tout !
Enjoy
Eloi
 

chris

XLDnaute Barbatruc
Bonjour

NOTA : pour modifier les donnée dans le userform puis réécriture dans les données source, j'ai juste insérer un id très pratique en XLS, le N° de ligne
Oui sous réserve, comme déjà évoqué, que l'extrait corresponde à toutes lignes de la source (ou à sa partie haute) et soit classé comme la source, donc cas particulier

Le numéro de ligne n'est pas un ID fiable, un tri suffit à tout faire sauter...
 

Eloiweb

XLDnaute Nouveau
Bonjour


Oui sous réserve, comme déjà évoqué, que l'extrait corresponde à toutes lignes de la source (ou à sa partie haute) et soit classé comme la source, donc cas particulier

Le numéro de ligne n'est pas un ID fiable, un tri suffit à tout faire sauter...
Bonjour Chris, oui, entièrement d'accord : j'ai imposé le tri de mes données sources à l'ouverture du classeur et l'actualisation des TCD dès que l'on sélectionne un onglet qui en contient. Le seul cas non géré est si l'utilisateur ajoute des données manuellement non triées dans la source mais il n'est pas censé le faire ;)
 

Discussions similaires

Statistiques des forums

Discussions
312 105
Messages
2 085 350
Membres
102 870
dernier inscrit
Armisa