Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2013 Lien hypertexte dans tableau structuré

M.Ben

XLDnaute Junior
Bonjour la communauté,

Je suis sur un nouveau projet et je bloque sur "la création de lien hypertexte", j'ai fouillé ce qui pouvait être en lien avec le sujet sur la toile et le forum, mais malheureuse sans aboutir dans l'exécution pour mon code.

J'ai écris le code suivant :

Quand je l'exécute, ma routine j'arrête au niveau de la partie qui est sensé me permettre de créer mon lien (erreur 438), et dans mes variables locales dans l'expression "Création_Hypertexte_New_Onglet", en valeur ça me retourne "vide" .

Je vois bien qu'il y a quelque chose que je n'ai pas cerné, mais je n'arrive pas à voir quoi. Pouvez-vous m'aider à y voir plus clair s'il vous plait.

La macro qui exécute la routine en question, ce fait par le bouton "Créer Feuille de marque" de l'onglet "Résultats".

Le sub qui appel la fonction est le module nommé "Bt_Créer_Feuille_Marque" et la fonction est dans le module nommé "A_FONCTIONS_Programme".

J'espère que ma demande est assez explicite et que mon programme ne piquera pas les yeux des plus confirmé .

Merci d'avance pour votre aide.
 

Pièces jointes

  • DFA_1_Blackball.xlsm
    64.4 KB · Affichages: 5
Solution
Salut,
subadress prend 2 "d" ==> SubAddress
VB:
'------------------------------------------------------------------------------------------------------------------------------
'Fonction pour creer lien hypertexte de l'onglet crée
Function Création_Hypertexte_New_Onglet(Nom_Onglet, Nom_Lien_Hypertexte As String, Ligne_tab_résultats As Integer)
        
    With [Tab_Résultats].Parent
        Dim Anchor As Range: Set Anchor = [Tab_Résultats[Nom]].Rows(Ligne_tab_résultats)
        .Hyperlinks.Add _
            Anchor:=Anchor, _
            Address:="", _
            SubAddress:="'" & Nom_Onglet & "'!B4", _
            TextToDisplay:=Nom_Lien_Hypertexte
    End With

End Function

fanch55

XLDnaute Barbatruc
Salut,
subadress prend 2 "d" ==> SubAddress
VB:
'------------------------------------------------------------------------------------------------------------------------------
'Fonction pour creer lien hypertexte de l'onglet crée
Function Création_Hypertexte_New_Onglet(Nom_Onglet, Nom_Lien_Hypertexte As String, Ligne_tab_résultats As Integer)
        
    With [Tab_Résultats].Parent
        Dim Anchor As Range: Set Anchor = [Tab_Résultats[Nom]].Rows(Ligne_tab_résultats)
        .Hyperlinks.Add _
            Anchor:=Anchor, _
            Address:="", _
            SubAddress:="'" & Nom_Onglet & "'!B4", _
            TextToDisplay:=Nom_Lien_Hypertexte
    End With

End Function
 

M.Ben

XLDnaute Junior
Bonjour fanch55,

Je te remercie pour ton retour, je teste ta proposition dans la journée et je te ferai un retour.

Merci je n'avais pas fait attention sur la syntaxe du SubAddress.

Pourrais-tu s'il te plait m'expliquer les lignes suivantes :

Dim Anchor As Range: Set Anchor = [Tab_Résultats[Nom]].Rows(Ligne_tab_résultats)

je ne comprend pas pourquoi il faut faire cette déclaration.

et dans le SubAddress, je ne comprend pas ce terme et pourquoi il faut le mettre :

Encore merci
 

fanch55

XLDnaute Barbatruc
Dim Anchor As Range: Set Anchor = [Tab_Résultats[Nom]].Rows(Ligne_tab_résultats)
En fait, le parseur d'affichage du visual basic est un peu perdu quand il y a des "[" ou "]" dans un appel à des fonctions Excel. Cette déclaration et affectation n'existe que dans un souci de lisibilité du code .
On peut mettre l'origine de l'anchor directement dans le code mais pas glop à lire ...
en déclarant une cellule tampon :en direct
.Hyperlinks.Add _
Anchor:=Anchor, _
Address:="", _
SubAddress:="'" & Nom_Onglet & "'!B4", _
TextToDisplay:=Nom_Lien_Hypertexte

.Hyperlinks.Add _
Anchor:=[Tab_Résultats[Nom]].Rows(Ligne_tab_résultats), Address:= _
"", SubAddress:= _
"'" & Nom_Onglet & "'!B4", TextToDisplay:= _
Nom_Lien_Hypertexte



Un hyperlien pour une feuille pointe toujours vers une cellule de celle-ci.
J'ai mis B4 car c'est la cellule où est prévu le nom, mais tu peux mettre l’adresse d'une autre cellule à ta convenance.
 

M.Ben

XLDnaute Junior
Merci, pour tes explications.

Je viens de tester, et ça fonctionne parfaitement.

Je vais pouvoir continuer à développer mon programme en commençant par bloquer l'actualisation des calculs et changer la couleur et Police des liens.
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…