Lien Hypertexte Et Reference Cellule

FABIENNE

XLDnaute Nouveau
Comment Mettre En Place Un Lien Hypertexte Dans Une Cellule En Faisant Reference Toujours A La Meme Feuille (meme Si Celle-ci Est Renommee)
Je Cherche Et Ne Trouve Pas
Merci De Votre Aide
 

FABIENNE

XLDnaute Nouveau
Re : Lien Hypertexte Et Reference Cellule

RE

J' ai vérifié les modules, et retesté la macro>.

Cela fonctionne bien une fois ou deux et puis..... plus rien.
Je suis alors retournée tester sur le fichier que tu avais joint et...idem
cela marche (pas toujours) et souvent la première feuille et ou la dernière ne sont pas renommer

je m'arrache les cheveux!!!!
 

FABIENNE

XLDnaute Nouveau
Re : Lien Hypertexte Et Reference Cellule

me revoilà après quelques jours d'absence toujours avec mes liens hypertextes ( tenace je suis!!!)
après plusieurs tests je peux dire que cela fonctionne à peu près . Je m'explique :
ex si un lien s'appelle 8 et que je le renomme xxx, il renomme tous les 8 qu'il trouve en xxx et donc si plus bas un lien se nomme 18 il va se nommer 1xxx.

comment puis-je améliorer la macro de Pierre Jean ?

d'autre part j'avais crée une macro qui nomme automatiquement les noms des feuilles et si je l'active cell des liens hypertextes elle ne fonctionne que sur le premier lien

merci de votre aide
 

pierrejean

XLDnaute Barbatruc
Re : Lien Hypertexte Et Reference Cellule

bonjour FABIENNE

teste cette version

Code:
Sub renommerhyper(feuille As String, anciennom As String, nouveaunom As String)
If Sheets(feuille).Hyperlinks.Count = 0 Then Exit Sub
Dim subad As String
Dim anch As Range
'pour chaque lien de la feuil1
  For Each h In Sheets(feuille).Hyperlinks
  'si le lien concerne l'ancien nom
    If h.SubAddress = anciennom Then
    'on remplace dans la subadress l'ancien nom par le nouveau nom
      subad = Replace(h.SubAddress, anciennom, nouveaunom)
    'on redefinit le anch
      Set anch = Sheets(feuille).Range(h.Range.Address)
    'on efface l'hyperlink
      h.Delete
    'on le réecrit
      ActiveSheet.Hyperlinks.Add anchor:=anch, Address:="", SubAddress:=subad
    End If
Next
End Sub
 

pierrejean

XLDnaute Barbatruc
Re : Lien Hypertexte Et Reference Cellule

re

teste cette nouvelle version un peu plus travaillée

Code:
'macro pour adresser les hyperlink de la feuil1 au nouveau nom
'd'une feuille qui a été renommée
Sub renommerhyper(feuille As String, anciennom As String, nouveaunom As String)
If Sheets(feuille).Hyperlinks.Count = 0 Then Exit Sub
Dim subad As String
Dim anch As Range
'pour chaque lien de la feuil1
  For Each h In Sheets(feuille).Hyperlinks
  'si le lien concerne l'ancien nom
    'If InStr(h.SubAddress, anciennom) <> 0 Then
    If Left(h.SubAddress, Len(anciennom)) = anciennom Then
    'on remplace dans la subadress l'ancien nom par le nouveau nom
      subad = Replace(h.SubAddress, anciennom, nouveaunom)
    'on redefinit le anch
      Set anch = Sheets(feuille).Range(h.Range.Address)
    'on efface l'hyperlink
      h.Delete
    'on le réecrit
      ActiveSheet.Hyperlinks.Add anchor:=anch, Address:="", SubAddress:=subad
    End If
Next
End Sub
 

FABIENNE

XLDnaute Nouveau
Re : Lien Hypertexte Et Reference Cellule

GENIAL!!!!!

ca marche!!!!! et si je veux étendre les liens à plusieurs feuilles quelle est la meilleure manière de s'y prendre ?

et si pour corser le tout mes feuilles sont nommées par macro peut-on activer les liens ?

(oui je sais j'en demande pe-être beaucoup là... mais on ne sait jamais!!!)

mille mercis pour le travail déjà fait
 

FABIENNE

XLDnaute Nouveau
Re : Lien Hypertexte Et Reference Cellule

Bonjour pierrejean
autant pour moi.... après vérification la mise à jour des liens fonctionne sur toutes les feuilles du classeur.
mais si je nomme les onglets par une macro, cela ne fonctionne plus! est-ce que l'on peut y remédier ou faut-il obligatoirement passer par une saisie manuelle ?
dans la mesure où le classeur peut comporter 60 feuilles à renommer... je voulais bien sûr m'économiser!!!!!
merci d'avance
 

pierrejean

XLDnaute Barbatruc
Re : Lien Hypertexte Et Reference Cellule

bonjour FABIENNE

dans le cas de changement de nom par macro il suffit de relancer dans ladite macro
celle ci dessus

ça devrait donner:

Code:
for each sh in worksheets
 
Call renommerhyper(sh.Name, anciennom , nouveaunom )

next sh
 

FABIENNE

XLDnaute Nouveau
Re : Lien Hypertexte Et Reference Cellule

j'y avais pensé et essayé de passer par un call mais j'ai un message d'erreur :

erreur de compilation : type d'argument by ref incompatible
qui s'affiche pour la ligne ci-dessous :

Call renommerhyper(feuille, anciennom, nouveaunom)
 

pierrejean

XLDnaute Barbatruc
Re : Lien Hypertexte Et Reference Cellule

si c'est toujours ce type d'erreur

erreur de compilation : type d'argument by ref incompatible

il faut chercher du coté des types de variable

ne pas hesiter a utiliser Cstr(...) pour forcer le type (en particulier essayer cstr(sh.Name) )
 

Discussions similaires

Statistiques des forums

Discussions
312 489
Messages
2 088 848
Membres
103 972
dernier inscrit
steeter