Lien hypertext

Bonjour à tous

Je suis un novice en matière de VBA Excel et j'essaie de renommer avec une macro VBA une feuille avec une information dans une cellule.

j'ai toujours le message d'erreur "la reference n'est pas valide"

mon code est le suivant :

j'ai décomposé des macros excel que j'ai collé bout à bout pour mon projet.

Je copie une feuille P0

J'ai P0(2) en INDEX 1 (première position)

Dans une feuille SCORE j'ai en cellule "A9" la référence Pn

SUB LHT()

Sheets ("score").select

Range ("E9").select

je verifie le contenu dans une msgbox

msgbox range ("E9"). value

à l'écran la message box me donne bien le contenu de la cellule A9=Pn

ActiveSheet.hyperlinks.add Anchor:Selection,Adresse:="",SubAdress:=_

"E9'A1"

END SUB

Pas de msg d'erreur de compilation mais cela ne fonctionne pas. Quand dans ma feuille score je selectionne A9 je ne vais pas à la feuille ONGLET Pn

j'ai essayé un grand nombre de formules sur le forum mais rien ne fonctionne car je n'arrive pas à renommer la feuille

quand j'active la cellule E9 dans la feuille "score", je ne vais pas sur la feuille "E9" (E9=Pn)

Je vous remercie pour votre attention

Cordialement

Bonjour,

ActiveSheet.hyperlinks.add Anchor:Selection,Adresse:="",SubAdress:="E9'A1"

qu'est ce que c'est "E9'A1" ?

Bonjour,

Avec tes E9, Pn, etc... On se sait pas trop ce que tu veux !

Cette ligne de code :

Sheets("score").Hyperlinks.Add Sheets("score").Range("E9"), "", "E9!A1", , "Vers la feuille E9"

crée un lien hypertexte en cellule "E9" de la feuille "Score" vers la cellule "A1" de la feuille "E9", par contre je ne comprend pas ton "Pn" ?

Bonjour,

A vouloir mettre des bouts de code pêchés n'importe où bout à bout, on finit par faire une bouillie dans laquelle on ne retrouve rien de cohérent ! Tu l'illustres assez bien !

D'abord en finir avec les Select, tout à fait inutile !

Ensuite respecter la syntaxe VBA...

De plus, pour que le lien se crée, il faut une adresse (qui manque) et une sous-adresse dans ce cas (correctement écrite).

Cordialement.

Re,

L'adresse peut ne pas être renseignée si le lien est interne au fichier mais elle doit être une chaîne vide (""), par contre, la sous-adresse doit, dans ce cas, être une adresse valide au sein du document. Par contre, si l'adresse est renseignée,il n'est pas nécessaire d'entrer une chaîne vide dans la sous-adresse.

@ Theze : tu as raison à propos de l'adresse...

Je suis toujours obnubilé par le fait que la fonction LIEN_HYPERTEXTE ne fonctionne pas avec ce type de lien (ce qui n'est pas le sujet d'ailleurs) mais l'adresse n'y change d'ailleurs rien...

Bonjour et merci pour vos remarques

Je vais essayer d'être plus clair dans ma demande

Je veux faire un classeur qui comprend une feuille (onglet) nommer SCORE qui synthétise tous mes projets . Cette feuille SCORE reprend toutes les informations de chaque projet dans un tableau. Chaque ligne de ce tableau correspond à un projet et chaque projet est noté P (nom du projet 1 lettre 1 chiffre PE1, PM2,PN3,PA4,....)

Dans la feuille SCORE, il y a autant de ligne que de projet.

Pour chaque projet du tableau, je crée une feuille (ONGLET) qui porte le nom du projet.

Tout fonctionne bien, sans doute pas optimisé, mais ma macro "maison" fait ce que je souhaite.

La MACRO génère une ligne par projet dans la feuille SCORE (un simple copier coller du projet 0).

Pour chaque ligne projet dans le tableau SCORE, je crée une Feuille (ONGLET) qui portera le même nom que le projet.

Le nom du projet dans le tableau SCORE est dans la cellule A9 (exemple: PE3). La feuille (Onglet) du projet avec tous les détails du projet se nomme du même nom soit dans ce cas PE3.

Ainsi, quand je suis dans la feuille SCORE et que je positionne mon curseur sur la colonne E9 de la feuille, j'ai un lien hypertext pour chaque projet car je ne visualise pas toutes les feuilles projets dans mon classeur à l'écran.

Mon problème et que je n'arrive pas à trouver la syntaxe pour automatiser le lien hypertext.

je reformule donc ma demande,

Comment faire une MACRO qui puisse mettre un lien hypertext sur la cellule "E9" de la feuille SCORE qui contient le numéro du projet (PE5 par exemple)) ( ce sera toujours la même cellule car je fais copier et insérer coller toujours au même endroit) sur une feuille (onglet) qui existe et qui se nomme déjà PE5. (Le projet suivant sera P(1 lettre) 6 dans SCORE et la feuille projet (ONGLET) du même nom) etc...

Dans ma macro, j'ai placé une boite de dialogue qui m'affiche le contenu de la cellule E9 de SCORE, la boite affiche bien, le nom de mon projet PE5 dans ce cas, mais le lien ne se crée pas sur la feuille (onglet) déjà nommée PE5.

Il ne faut pas créer de feuille car la feuille onglet existe et elle porte déjà le bon nom de projet seulement mettre le lien

Je dois avoir une erreur de syntaxe pour le lien hypertext

Merci pour votre temps

Sub LHT()

' LHT Macro

Sheets("Score").Select

Range("E9").Select

MsgBox Range("E9").Value

ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _

"'E9'!A1"

End Sub

''' j'ai essayé de faire une macro avec l'éditeur de MACRO pour un nom fixe type TEST et la syntaxe a été "TEST!A1". Donc, j'ai changé TEST par ma variable ("E9") qui contient le nom de mon projet mais cela ne fonctionne pas.

comme je suis novice dans cette programmation VBA, je n'ai pas la maitrise de la syntaxe .

Grand merci pour votre aide

Bonjour EUROMED,

With ActiveSheet
.Hyperlinks.Add Anchor:=.Range("E9"), Address:="", SubAddress:="'" & .Range("E9").Value & "'!A1", TextToDisplay:=.Range("E9").Value
End With
Sub LHT()
    Dim sadr$
    With Sheets("Score")
        sadr = "'" & .Range("E9") & "'!A1"
        .Hyperlinks.Add .Range("E9"), "", sadr
    End With
End Sub
sabV a écrit :

Bonjour,

ActiveSheet.hyperlinks.add Anchor:Selection,Adresse:="",SubAdress:="E9'A1"

qu'est ce que c'est "E9'A1" ?

Merci de la réponse mais cela ne fonctionne pas

j'ai toujours le message d'erreur

Bien à vous

j'ai reposté une demande plus détaillée car c 'est une question de syntaxe mais je ne trouve pas la formule

C'est bien une question de syntaxe ! Mais personne n'a considéré celle citée comme bonne !!

Bonjour,

avez-vous essayé ma dernière suggestion,

With ActiveSheet
.Hyperlinks.Add Anchor:=.Range("E9"), Address:="", SubAddress:="'" & .Range("E9").Value & "'!A1", TextToDisplay:=.Range("E9").Value
End With
MFerrand a écrit :
Sub LHT()
    Dim sadr$
    With Sheets("Score")
        sadr = "'" & .Range("E9") & "'!A1"
        .Hyperlinks.Add .Range("E9"), "", sadr
    End With
End Sub

BONJOUR MFERRAND,

Un grand merci, je n'ai pas compris toute la syntaxe mais le code renomme bien ma feuille, c 'est tout à fait ce que je voulais.

Je remercie au passage toutes les interventions des membres pour avoir essayé de m'aider

Euromed


sabV a écrit :

Bonjour,

avez-vous essayé ma dernière suggestion,

With ActiveSheet
.Hyperlinks.Add Anchor:=.Range("E9"), Address:="", SubAddress:="'" & .Range("E9").Value & "'!A1", TextToDisplay:=.Range("E9").Value
End With

Bonjour sabV

j'ai eu plusieurs réponses et la votre fonctionne aussi

Je vous remercie pour votre aide

Je vais essayer d'intégrer ces lignes dans ma macro pour finaliser mon projet

Grand Merci

On y arrive ! A un détail de style d'écriture, c'est la même réponse que sabv et moi avons fourni dans la même minute ! Ajouter un lien, il n'y avais pas de grandes possibilités de variations... La syntaxe est donc pour tous celle de la méthode Hyperlinks.Add que tu peux aisément consulter dans l'aide !

Pour les détails de réalisation, cela te permet de voir le passage d'arguments par noms d'un côté, par position de l'autre (même contenu, mais si on s'abstient de mettre les noms, on est tenu de les mettre dans l'ordre). J'ignore le paramètre TextToDisplay car une valeur a été préalablement affectée à la cellule et qu'elle demeurera (c'est en fait la seule différence réelle que tu pourras trouver entre les deux, minime ! L'utilisation ou non de variables ne changeant rien à la méthode...)

Cordialement.

Rechercher des sujets similaires à "lien hypertext"