Remplacer lien hypertexte

bonjour à tous,

je voudrai remplacer le lien hypertexte "cas d'emploi" par un bouton afin d'intégrer l'ouverture (visible true /false) de la feuille contenant le tcd.

quelqu'un aurait une solution, svp ?

4classeur1.xlsx (16.97 Ko)

merci d'avance.

Bonjour,

Peut-être plus simple et pour éviter le bouton, mettez ce code dans le feuil1
Enregistrez votre fichier au format XLSM

Après faites un double-click en B4, cela vous dirigera sur la feuille du TCD et vous montrera le détail de la valeur B4

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("B4")) Is Nothing Then
    Cancel = True
    With Sheets("cas emploi outils KIWA 1")
        .PivotTables("Tableau croisé dynamique4").PivotFields("G").PivotItems(Target.Value).ShowDetail = True
        .Activate
    End With
End If
Cancel = False
End Sub

si ok -->

Cordialement

merci DAN, ta solution fonctionne très bien mais je doit absolument passe par un bouton pour commander l'ouverte et ou la fermeture des autres feuilles.

le code sera intégrer dans un autre classeur qui contient un grand nombre de feuille.

mais je doit absolument passe par un bouton pour commander l'ouverte et ou la fermeture des autres feuilles.

Votre fichier est trop minimaliste pour que je comprenne ce que vous voulez faire.

Il y a plusieurs données dans votre TCD et vous voulez un seul bouton ?

oui je veux un seul bouton qui :

-afficherait la feuille contenant le tcd ( car le reste du temps elle est masquée )

-qui, comme avec ton code , développerai la ligne correspondante dans le Tcd

et tout ça en fonction de la valeur contenu dans la cellule.

a la limite je peux t'envoyer une copie du fichier mais en privé si c'est possible

Bonjour

Le souci est de savoir si le bouton ne concerne que la cellule B4 en feuil1 ou pas
Donc vous changez la valeur en B4 puis vous cliquez sur le bouton
expliquez moi

Edit : Essayez avec ce code à placer le code dans VBE comme ceci :

  • Sur le clavier, appuyez sur les touches ALT + F11 (ou ALT + FN +F11) pour accéder à VBE (éventuellement vous devriez voir l'onglet developpeur dans le menu excel)
  • Allez dans le Menu / Insertion et choisissez l'option "Insertion" -> "Module"
  • Dans la fenêtre vierge, collez le code ci-dessous puis liez le à votre bouton
Sub test()
Dim valeur As String

valeur = Sheets("feuil1").Range("B4").Value

With Sheets("cas emploi outils KIWA 1")
    With .PivotTables("Tableau croisé dynamique4").PivotFields("G")
        .ShowDetail = False
        .PivotItems(valeur).ShowDetail = True
    End With
    .Activate
End With

End Sub

Si ok, n'oubliez pas...

Cordialement

je viens de l'essayer sur mon fichier test : parfait !

je l'intègre à mon véritable fichier et je vous dit ce qu'il en est.

DAN ,

visiblement ca fonctionne bien sur ma première feuille , je vais l'intégrer a l'ensemble de mon classeur.

petite question, est il possible, lors de l'ouverture du TCD grâce au bouton, que l'affichage pointe directement au niveau de la valeur de cherché...?

exemple : "T98K1" en B4 ; directement arrivé sur la ligne correspondante dans le TCD après avoir clicker.

petite question, est il possible, lors de l'ouverture du TCD grâce au bouton, que l'affichage pointe directement au niveau de la valeur de cherché...?

Pour sélectionner la valeur choisie dans le TCD, modifiez le code comme ceci

Sub test()
Dim valeur As String

valeur = Sheets("feuil1").Range("B4").Value

With Sheets("cas emploi outils KIWA 1")
    .Activate
    With .PivotTables("Tableau croisé dynamique4").PivotFields("G")
        .ShowDetail = False
        With .PivotItems(valeur)
            .ShowDetail = True
            .DataRange.Select
        End With
    End With
End With
End Sub

DAN, merci c'est nickel !!

par contre où dois je mettre "On Error GoTo 0" pour éviter les bugs si la valeur de "B4" n'est pas contenu dans le TCD ?

Le code comme ceci.
J'ai rajouté un MSGBOX qui vous prévient que la valeur n'existe pas dans le TCD

Sub test()
Dim valeur As String

valeur = Sheets("feuil1").Range("B4").Value

With Sheets("cas emploi outils KIWA 1")
    .Activate
    With .PivotTables("Tableau croisé dynamique4").PivotFields("G")
        .ShowDetail = False
        On Error Resume Next
        With .PivotItems(valeur)
            If Err.Number > 0 Then MsgBox "Valeur non trouvée dans le TCD": Exit Sub
            .ShowDetail = True
            .DataRange.Select
        End With
    End With
End With

End Sub

Edit : On error Goto 0 c'est pour annuler la gestion d'erreur. Donc nul besoin ici puisque vous sortez du code si une erreur est trouvée

tout simplement parfait.

un grand merci DAN

Rechercher des sujets similaires à "remplacer lien hypertexte"