Besoin d'aide sur un TCD

Bonjour,

J'ai fait une fiche récapitulative (Feuil1) d'un tableau croisé dynamique(Feuil2).

Mais quand je double-clic sur une valeur sur ma fiche récapitulative(Feuil1) je ne retrouve pas la fonction que l'on à sur un tableau croisé dynamique. La fonction en question est que lorsque l'on double-clic on a un feuille qui s'ouvre expliquant ce qu'est cette valeur.

Je pense que par VBA ca peut le faire mais je sais pas le code.

3 réponses

  1. Bonjour,

    Pas sûr de bien comprendre. Est-ce que tu peux mettre ton classeur, sans données confidentielles, sur OneDrive, DropBox, CJoint.com, mon-partage.fr ou sur un autre site de partage et poster le lien correspondant ?

    Daniel
    0
    1. Je vais te faire un classeur avec une petite partie pour essayer.
      0
  2. J'ai mis cette macro dans le module de Feuil1

    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
      Dim Plage As Range
      If Target.Address = "$B$5" Then
        Cancel = True
        [A9:D1000].ClearContents
        With Sheets("Feuil3")
          Set Plage = .Range("A1", .Cells(.Rows.Count, 1).End(xlUp)).Resize(, 4)
          Plage.AutoFilter 1, Sheets("Feuil1").[B3]
          Plage.AutoFilter 4, Sheets("Feuil1").[B4]
          Set Plage1 = Plage.Offset(1).Resize(Plage.Rows.Count - 1)
          If Plage1.SpecialCells(xlCellTypeVisible).Rows.Count > 0 Then
            Plage.Copy Sheets("Feuil1").[A9]
          End If
          Plage.AutoFilter
        End With
      End If
    End Sub


    Les résultats sont sur Feuil1 en A9.

    https://mon-partage.fr/f/Sy217C4U/

    Daniel
    0
    1. Merci beaucoup je vais essaye de modifier pour le l'adapter pour mon dossier. Juste petite question au lieu de faire affficher en A9 on peut lui dire d'ouvrir une nouvelle feuille et le mettre en A1?
      0
    2. Et deuxième petite question. Moi sur mon fichier je n'ai pas la base de donnée du TCD mais que le TCD est-ce que c'est possible de faire pareil.

      En gros ça veux dire faire la même manipulation mais sans la feuille 3
      0
  3. J'ai modifié le code :

    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
      Dim L As Variant, C As Variant
      If Target.Address = "$B$5" Then
        Cancel = True
        With Sheets("Feuil2")
          L = Application.Match(Sheets("Feuil1").[B3], .[A:A], 0)
          C = Application.Match(Sheets("Feuil1").[B4], .[4:4], 0)
          If IsNumeric(L) Or IsNumeric(C) Then
            .Cells(L, C).ShowDetail = True
          Else
            MsgBox "Erreur dans les références"
          End If
        End With
      End If
    End Sub


    https://mon-partage.fr/f/2WZOd0xc/
    0
    1. Enorme!!! Franchement un grand merci parce que tu as tous fais tous seul! Tu dois être un boss sur ca! Je sias pas comment te remercier
      0
    2. Tu vas me faire rougir ;-) Sérieusement, l'âge y est pour beaucoup. Et je suis loin du niveau des "bons" !
      0
    3. Il y a d'ailleurs une ligne en erreur :

      Remlace :

      If IsNumeric(L) Or IsNumeric(C) Then


      par

      If IsNumeric(L) And IsNumeric(C) Then


      Ca aurait pu provoquer une erreur.

      Daniel
      0