Lire valeurs de la formule LIREDONNEESTCD

Debutantexcel8 Messages postés 25 Statut Membre -  
 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

3 réponses

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

      Daniel
      0
    2. danielc0 Messages postés 2201 Date d'inscription   Statut Membre Dernière intervention   291
       
      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
    3. danielc0 Messages postés 2201 Date d'inscription   Statut Membre Dernière intervention   291
       
      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
    4. Debutantexcel8 Messages postés 25 Statut Membre 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
  2. Debutantexcel8 Messages postés 25 Statut Membre 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
  3. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
    1. 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