Comprendre code hypertext dans macro vba

Résolu/Fermé
skeumy - 22 oct. 2009 à 08:49
 wolmyneto - 23 févr. 2010 à 15:39
Bonjour,

je pense que les compétances des personnes sur ce forum vont m'etre très utiles ! Voila mon problème: je n'arrive pas a coder correctement dans une macro vba la ligne de code permettant de creer un lien hypertext dans une cellule. Je m'explique:

J'ai une feuille "idees" ou est ecrit sur une colonne une liste de titre d'idées ("idée1";"idée2";...ect)
J'ai une deuxieme feuille qui sert de trame de fond que je nomme "fiche temoin".

Apres recherches sur le net et ce forum j'ai reussi à creer une macro pas trop degeu' liée a un bouton.

Cette macro sert à dupliquer la feuille "fiche temoin" en lui appliquant un nom de feuille que l'utilisateur précisera en cliquant sur l'un des nom présent sur la feuille "idées".

Tout va bien jusque la. Mais maintenant, je souhaite que le titre d'idée (par exemple "idée1") sur lequel j'ai cliqué en feuille "idées" se transforme automatiquement en lien vers la nouvelle feuille créée.

J'ai eu beau bidouiller cette fonction "ActiveSheet.Hyperlinks.Add Anchor" dans tout les sens, ca ne fonctionne pas :(

merci pour l'aide que vous pourrez apporter au bien modeste débutant que je suis ;)

(je peux copier/coller le code que j'ai actuellement dans le prochain message si ca peux vous aider)

merci !
A voir également:

7 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
22 oct. 2009 à 09:53
Bonjour,
essaies
 idee = ActiveCell
    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:="'" & idee & "'!A1"
    'sub address: lire guillemet-apostrophe-guillemet et après le 2° & guillemet-apostrophe-exclamation

ou si tu préfères:
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:="'" & ActiveCell.Value & "'!A1"


en supposant que ta cellule active est "la nouvelle idée"

la difficulté vient souvent que si le nom d'onglet comporte des espaces il faut encadrer ce nom par des apostrophes par ex: 'idée 27' .... donc, comme on ne sait pas si l'utilisateur mettra un espace ou pas, il est + prudent d'utiliser cette syntaxe barbare...
0
bonjour, et merci pour votre réponse.

Pourriez vous m'eclairez sur quoi mettre et ou? ;) En fait, je ne sais pas a quoi correspond address; subaddress.

Par contre, si j'ai bien compris, l'activecell.value, c'est la cellule ou je veux que mon link apparaisse. J'ai testé differentes valeurs, mais a chaque fois, le link apparait dans la nouvelle feuille créée et non dans la feuille ou je selectionne le titre. (feuille "idees")

J'ai ecrit ceci:

Range(plop).Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:="'idees" & ActiveCell.Value & "'!plop"


sachant que "plop" est la cellule de la page "idees" ou se situe le titre que j'ai selectionné. J'ai l'impression qu'il y a un conflit entre cellule ou page active.

merci a vous
0
personne d'autre n'a de solutions ? C'est bien embetant , je reste bloqué.
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
23 oct. 2009 à 14:13
tu as marqué
Cette macro sert à dupliquer la feuille "fiche temoin" en lui appliquant un nom de feuille que l'utilisateur précisera en <ital>cliquant sur l'un des nom présent sur la feuille "idées".

Tout va bien jusque la. Mais maintenant, je souhaite que le titre d'idée (par exemple "idée1") sur lequel j'ai cliqué en feuille "idées" se transforme automatiquement en lien vers la nouvelle feuille créée. </ital>

c'est ce que je t'ai proposé après l'avoir testé.
il faut bien sûr que la feuille "idées" soit la feuille active!
au besoin incorpore cette ligne avant la partie lien hypertexte
sheets("idees").activate


Michel
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bonjour !

Bien, j'y vois un petit peu plus clair dans cette fameuse fonction hyperlink, merci a vous :) Elle fonctionne, mais il subsiste encore un petit soucis.
Apparement, la cellule active est celle entourée d'un trait épais et noir. Or quand je clique (sur demande de la macro) sur la cellule où est le titre de ma nouvelle feuille, la cellule s'entoure d'un trait en pointillé.

Au final, le link créé par la macro apparait dans une autre cellule qui etait cerclé de noir avant le debut de la macro.

J'espere que j'ai été clair :s Donc en gros, il faudrai une fonction qui transforme la cellule encerclé de pointillé, en cellule encerclé de noir.
Sinon, je serai obligé de cliquer sur la cellule ou je souhaite voir apparaitre le link avant de cliquer sur le bouton qui lance la macro.

Merci pour les solutions que vous pourrez m'apporter :)

(et de me faire progresser en même temps)
0
Bon, et bien j'ai reussi a tout bien faire fonctionner :D Pour ceux qui aurai le même problème que moi, voici les lignes de code utilisées, que michel m'a fourni, plus la modif pour activer la cellule:


plop = reponse.Address ('reponse' est la cellule selectionnée grace a la macro)

Sheets("idees").Activate ('active la feuille ou je souhaite voir apparaitre le link')
Range(plop).Select ('active la cellule ou je souhaite voir apparaitre le link')

idee = ActiveCell

ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:="'" & idee & "'!A1"


Il y a peut etre un moyen plus efficace pour arriver au meme resultat, je laisse soin aux personnes plus chevronnées de proposer leurs solutions.

En tout cas, merci bien pour ton aide michel ! Je reviendrai probablement poster quelques messages de détresse sur le fofo ;)
0
Bonjour
Je ne parle pas français tres bien, donc perdon pour les fautes.
Je ne sais pas si je bien compris, mais j'ai un probleme et je pense qui la solution se semble, mais je ne sais pas encore comment faire.
Voila mon probleme

J'ai une base de donnée, et à chaque ligne a un hipertext.
J'ai criée une interface grafique avec Visual Basic, où je peut ajouter quelleque element. Mas malheureusement je ne sais pas comment je peut faire (dans la UserForm, sans taper le chemin, juste trouver comme si je suis dans du menu ouvrir) pour ajouter un hyperlink et souvegarder dans la base de données.
0