Besoin d'aide sur un TCD

Cailloux50 Messages postés 88 Statut Membre -  
danielc0 Messages postés 2195 Date d'inscription   Statut Membre Dernière intervention   -
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. danielc0 Messages postés 2195 Date d'inscription   Statut Membre Dernière intervention   285
     
    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. Cailloux50 Messages postés 88 Statut Membre
       
      Je vais te faire un classeur avec une petite partie pour essayer.
      0
  2. danielc0 Messages postés 2195 Date d'inscription   Statut Membre Dernière intervention   285
     
    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. Cailloux50 Messages postés 88 Statut Membre
       
      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. Cailloux50 Messages postés 88 Statut Membre
       
      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. danielc0 Messages postés 2195 Date d'inscription   Statut Membre Dernière intervention   285
     
    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. Cailloux50 Messages postés 88 Statut Membre
       
      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. danielc0 Messages postés 2195 Date d'inscription   Statut Membre Dernière intervention   285
       
      Tu vas me faire rougir ;-) Sérieusement, l'âge y est pour beaucoup. Et je suis loin du niveau des "bons" !
      0
    3. danielc0 Messages postés 2195 Date d'inscription   Statut Membre Dernière intervention   285
       
      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