Lire valeurs de la formule LIREDONNEESTCD
Debutantexcel8
Messages postés
25
Statut
Membre
-
debutantexcel8 -
debutantexcel8 -
Bonjour,
Je travaille actuellement sur plusieurs tableaux croisés dynamiques : j'ai donc créé plusieurs formules excel du type =LIREDONNEESTABCROISDYNAMIQUE... qui affichent sans problème les données des TCD correspondants.
Par ailleurs, mes collègues ne sont pas habitués à travailler sur TCD et je voudrais savoir pour leur faciliter la recherche, s'il est possible d'obtenir les mêmes données qu'on aurait obtenu en double cliquant sur la cellule qui contient le champ de la formule =LIREDONNEESTABCROISDYNAMIQUE... qu'en double cliquant sur la valeur directement dans le TCD.
Autrement dit et plus concrètement, dans mon exemple (cf fichier excel du lien ci-dessous), est-il possible de cliquer/doublecliquer sur la cellule B23 et obtenir le même résultat sans avoir besoin d'aller sur le TCD ?
Merci pour votre aide.
Ci-après le lien d'accès au fichier : https://www.cjoint.com/c/HHzeSRAnyOs
Merci
Je travaille actuellement sur plusieurs tableaux croisés dynamiques : j'ai donc créé plusieurs formules excel du type =LIREDONNEESTABCROISDYNAMIQUE... qui affichent sans problème les données des TCD correspondants.
Par ailleurs, mes collègues ne sont pas habitués à travailler sur TCD et je voudrais savoir pour leur faciliter la recherche, s'il est possible d'obtenir les mêmes données qu'on aurait obtenu en double cliquant sur la cellule qui contient le champ de la formule =LIREDONNEESTABCROISDYNAMIQUE... qu'en double cliquant sur la valeur directement dans le TCD.
Autrement dit et plus concrètement, dans mon exemple (cf fichier excel du lien ci-dessous), est-il possible de cliquer/doublecliquer sur la cellule B23 et obtenir le même résultat sans avoir besoin d'aller sur le TCD ?
Merci pour votre aide.
Ci-après le lien d'accès au fichier : https://www.cjoint.com/c/HHzeSRAnyOs
Merci
3 réponses
-
Bonjour,
J'espère qu'il y a plus simple :
Dans le module de la feuille, mets :
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim Ligne As Long
If Target.Address <> "$B$23" Then Exit Sub
Cancel = True
With ActiveSheet.PivotTables(1)
Ligne = .PivotFields("Marque").PivotItems([C22].Value).DataRange.Row
Target.Value = .PivotFields("Produit").PivotItems([B22].Value).DataRange.Cells(4)
End With
End Sub
Daniel-
-
Désolé, :
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim Ligne As Long If Target.Address <> "$B$23" Then Exit Sub Cancel = True With ActiveSheet.PivotTables(1) Ligne = .PivotFields("Marque").PivotItems([C22].Value).DataRange.Row Target.Value = .PivotFields("Produit").PivotItems([B22].Value).DataRange.Cells(Ligne - 7) End With End Sub
Le "7" correspond à la ligne d'entête du TCD. On doit ppouvoir le récupérer.
Daniel -
Donc, au final :
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim Ligne As Long, Dep As Long If Target.Address <> "$B$23" Then Exit Sub Cancel = True With ActiveSheet.PivotTables(1) With .ColumnRange Dep = .Rows(.Rows.Count).Row End With Ligne = .PivotFields("Marque").PivotItems([C22].Value).DataRange.Row Target.Value = .PivotFields("Produit").PivotItems([B22].Value).DataRange.Cells(Ligne - Dep) End With End Sub
Ouf. -
Merci pour le retour.
Je m'y prends peut etre mal mais je n'ai pas le même résultat que j'ai lorsque je double clique directement sur le chiffre 3 présent dans le TCD
Ci-après le fichier au lien https://www.cjoint.com/c/HHzkHDriNNs -
Nouveau fichier au lien : https://www.cjoint.com/c/HHzkPQCnbms
Je pense que le précédent a été endommagé
-
-
Merci ça fonctionne mais mon fichier original comporte 10 feuillets dont chacun a environ 50 formules du type liredonnéestcd et environ 6 tcd. Je ne sais pas si cette macro serait applicable à chacune des 50 formules par feuillet. En tout cas merci encore ça m'aide déjà beaucoup
-
Bonjour,
Autant essayer de les faire progresser non ?
Tu leur montres un TCD, et qu'ils peuvent avec le détail d'un résultat en double-cliquant.
eric