Liens Hypertextes - Modification par lot

alphabeta

XLDnaute Nouveau
Bonjour,

Je souhaite modifier une serie de liens hypertexte un peu comme on le ferait avec la fonction recherche remplace. l'objectif est de copier une feuille dans un même classeur contenant une série de liens hypertexte et de les modifier "à la chaine". Ainsi un lien comportant une reference avec Juillet pourrait etre modifié par Aout.
En esperant être suffisament claire

Merci d'avance pour votre aide
 

Staple1600

XLDnaute Barbatruc
Re : Liens Hypertextes - Modification par lot

Bonjout


edit: une autre macro plus proprette
qui parcourt les liens d'un classeur entier.

source:Replace Multiple Hyperlink Addresses - Excel Help:
Code:
Sub ReplacePartHyperlinkAddress() 
    Dim hLink As  Hyperlink 
    Dim wSheet As  Worksheet 
Dim chainecherch as string
Dim nouvchaine as string
'demande quelle chaine est à remplacer
chainecherch =InputBox("Quelle est la chaine à remplacer dans les liens hypertexte,svp")
'demande la nouvelle chaine à insérer
nouvchaine=InputBox("Nouvelle valeur à insérer dans les liens hypertexte, svp")
'traite toutes les feuilles
    For Each wSheet In Worksheets 
        For Each hLink In wSheet.Hyperlinks 
             'ici remplace l'adresse du lien hypertexte
            hLink.Address = Replace(hLink.Address, chainecherch, nouvchaine) 
             'ici remplace le texte afiché
            hLink.TextToDisplay = Replace(hLink.TextToDisplay, chainecherch, nouvchaine)
        Next hLink 
    Next wSheet 
End Sub

A partir de l'aide de VBA

Tu peux retirer les lignes ou il y a des "'"
Code:
Sub test()
For Each h In Worksheets(1).Hyperlinks
If InStr(h.Name, "Juillet") <> 0 Then
'ici pour test
'MsgBox h.SubAddress
'idem
'MsgBox h.TextToDisplay
h.TextToDisplay = "Aout"
'ici pour test
'h.SubAddress = "Aout"
End If
Next
End Sub
 
Dernière édition:

labelvage

XLDnaute Nouveau
Re : Liens Hypertextes - Modification par lot

Bonjour à tous,

J'ai longuement cherché sur les discussions et je pense être sur la bonne car mon problème, qui va certainement trouvé une solution, est presque semblable :

J'ai un seul classeur :
Feuille 1 : la liste de mes clients
Feuille 2 et suivantes : les coordonnées de ces clients

Je souhaiterais faire un lien hypertexte : en cliquant sur le nom d'un client en feuille 1 on soit diriger vers la feuille qui contient ses coordonnées.

Faire un lien, ça va mais j'ai plus de 100 clients donc je voudrais trouver un moyen de rendre la manipulation automatique, sachant que pour le 1er client correspond la feuille 2, le 2ème la feuille 3 ...

J'ai joint un exemple.
Avez-vous une idée ?

Merci d'avance
 

Pièces jointes

  • clients.xls
    13.5 KB · Affichages: 127
  • clients.xls
    13.5 KB · Affichages: 129
  • clients.xls
    13.5 KB · Affichages: 130

pierrejean

XLDnaute Barbatruc
Re : Liens Hypertextes - Modification par lot

bonjour labelvage

Salut Chris

Si tu tiens a une macro

Code:
For n = 1 To Range("A65536").End(xlUp).Row
    ActiveSheet.Hyperlinks.Add Anchor:=Range("A" & n), Address:="", SubAddress:= _
        "'" & Range("A" & n) & "'!A1", TextToDisplay:=Range("A" & n).Value
Next n
 

labelvage

XLDnaute Nouveau
Re : Liens Hypertextes - Modification par lot

Bonjour et MERCI !
Je vous remercie très sincèrement tous les 2 d'avoir pris le temps de me répondre et de partager vos connaissances. J'économise de nombreuses heures de sommeil...

Je viens d'essayer avec la formule lien hypertexte, ça fonctionne et quant à la macro, je le ferai avec de l'aide car je ne la maitrise pas pour l'instant.

C'était si simple de vous demander ! Merci
 

labelvage

XLDnaute Nouveau
Re : Liens Hypertextes - Modification par lot

Merci Pierre Jean pour ton aide, c'est sympa d'avoir implanté la macro et ça fonctionne, bien évidemment. J'enregistre la méthode.

J'espère arriver un jour à maitriser comme vous !
Je vais demander une formation à mon boss...:)
 

Statistiques des forums

Discussions
312 503
Messages
2 089 062
Membres
104 014
dernier inscrit
Aurélie MONTEIL