Menu

Besoin d'aide sur un TCD

Messages postés
59
Date d'inscription
jeudi 13 septembre 2018
Dernière intervention
30 novembre 2018
- - Dernière réponse : danielc0
Messages postés
308
Date d'inscription
mardi 5 juin 2018
Dernière intervention
18 décembre 2018
- 30 nov. 2018 à 15:45
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.
Afficher la suite 

Votre réponse

3 réponses

Messages postés
308
Date d'inscription
mardi 5 juin 2018
Dernière intervention
18 décembre 2018
0
Merci
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
Cailloux50
Messages postés
59
Date d'inscription
jeudi 13 septembre 2018
Dernière intervention
30 novembre 2018
-
Je vais te faire un classeur avec une petite partie pour essayer.
Cailloux50
Messages postés
59
Date d'inscription
jeudi 13 septembre 2018
Dernière intervention
30 novembre 2018
-
Voici le lien pour le fichier

https://www.cjoint.com/c/HKEkyziOKdG
Commenter la réponse de danielc0
Messages postés
308
Date d'inscription
mardi 5 juin 2018
Dernière intervention
18 décembre 2018
0
Merci
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
Cailloux50
Messages postés
59
Date d'inscription
jeudi 13 septembre 2018
Dernière intervention
30 novembre 2018
-
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?
Cailloux50
Messages postés
59
Date d'inscription
jeudi 13 septembre 2018
Dernière intervention
30 novembre 2018
-
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
Commenter la réponse de danielc0
Messages postés
308
Date d'inscription
mardi 5 juin 2018
Dernière intervention
18 décembre 2018
0
Merci
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/
Cailloux50
Messages postés
59
Date d'inscription
jeudi 13 septembre 2018
Dernière intervention
30 novembre 2018
-
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
danielc0
Messages postés
308
Date d'inscription
mardi 5 juin 2018
Dernière intervention
18 décembre 2018
-
Tu vas me faire rougir ;-) Sérieusement, l'âge y est pour beaucoup. Et je suis loin du niveau des "bons" !
danielc0
Messages postés
308
Date d'inscription
mardi 5 juin 2018
Dernière intervention
18 décembre 2018
-
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
Commenter la réponse de danielc0