Lire valeurs de la formule LIREDONNEESTCD

Debutantexcel8 Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   -  
 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
A voir également:

3 réponses

danielc0 Messages postés 1859 Date d'inscription   Statut Membre Dernière intervention   231
 
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
0
danielc0 Messages postés 1859 Date d'inscription   Statut Membre Dernière intervention   231
 
Avec "smartphone" en B22 et "LG" en C22.

Daniel
0
danielc0 Messages postés 1859 Date d'inscription   Statut Membre Dernière intervention   231
 
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
0
danielc0 Messages postés 1859 Date d'inscription   Statut Membre Dernière intervention   231
 
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.
0
Debutantexcel8 Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   9
 
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
0
Debutantexcel8 Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   9
 
Nouveau fichier au lien : https://www.cjoint.com/c/HHzkPQCnbms

Je pense que le précédent a été endommagé
0
Debutantexcel8 Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   9
 
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
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
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
0
debutantexcel8
 
Tu as grandement raison, je vais faire un exemple et ils vont comprendre, c'est la solution la plus simple, d'autant que même si j'arrive à trouver comment appliquer la macro sur toutes mes 500 formules ça représente un travail énorme. merci encore
0