[Déplacé .Net --> VBA] excel lien hypertext [Résolu]

Messages postés
94
Date d'inscription
mardi 11 mai 2010
Statut
Membre
Dernière intervention
3 avril 2011
- - Dernière réponse : Jacky1002
Messages postés
94
Date d'inscription
mardi 11 mai 2010
Statut
Membre
Dernière intervention
3 avril 2011
- 7 mai 2010 à 11:54
bonjour,

voilà mon problème :
jai 2 classeur (Maintenance.xlsm ; Machines.xlsx)

"maintenance" prenant en charge les macros mais pas "machines"
jai des liens hypertext entre ces 2 classeur jusque là tout va bien...
je me suis rendu compte aujourd'hui après 2 semaine de boulot sur ces classeurs que le fichier "machines" ne prend pas en charge les macros, du coup je l'enregistre en .xlsm mais mes liens de "maintenance" reste vers machine.xlsX (et qd je supprime ce dernier les lien st mort)
du coup je cherche un macro ou une technique pour changer tout mes lien qui était vers "machines.xlsx" pour qu'ils soient vers "machines .xlsm" sachant ke le l'emplacement du fichier reste le meme.

Merci de vos réponses
Jacky
Afficher la suite 

4 réponses

Meilleure réponse
Messages postés
68
Date d'inscription
mercredi 2 mars 2011
Statut
Membre
Dernière intervention
25 avril 2013
3
Merci
Re,
désolé de venir tard mais je t'ai donné un bout de code qu'il faut mettre dans une procédure:
sub toto ()
'le code
end sub

cette procédure tu la mets dans un module et dans l'éditeur tu appuies sur lecture.
j'ai testé mon code fonctionne, voici la procédure complète à mettre dans un module.
Sub MAJ_lien_hyp ()
Dim derfeuille As Integer, hyplink As Hyperlink

derfeuille = ThisWorkbook.Worksheets.Count

For i = 1 To derfeuille
    
  For Each hyplink In Sheets(i).Hyperlinks
   hypadress = hyplink.Address
   hypadress = Replace(hypadress, "xlsx", "xlsm")
   hyplink.Address = hypadress
   'affiche comme texte de lien le chemin du nouveau lien
   'hyplink.TextToDisplay = hypadress
  Next hyplink

Next i

End sub


voilà.
@+

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 194 internautes nous ont dit merci ce mois-ci

Commenter la réponse de rv83toulon
Messages postés
68
Date d'inscription
mercredi 2 mars 2011
Statut
Membre
Dernière intervention
25 avril 2013
0
Merci
Bonjour,
Ce code parcours chaque feuille du classeur et tous les liens de chaque feuille et remplace "xlsx" par "xlsm".
Dim derfeuille As Byte, hyplink As Hyperlink

derfeuille = ThisWorkbook.Worksheets.Count

For i = 1 To derfeuille
    
  For Each hyplink In Sheets(i).Hyperlinks
   hypadress = hyplink.Address
   hypadress = Replace(hypadress, "xlsx", "xlsm")
   hyplink.Address = hypadress
   'affiche comme texte de lien le chemin du nouveau lien
   'hyplink.TextToDisplay = hypadress
  Next hyplink

Next i


Dis moi si ç'est bon.
@+
Commenter la réponse de rv83toulon
Messages postés
94
Date d'inscription
mardi 11 mai 2010
Statut
Membre
Dernière intervention
3 avril 2011
0
Merci
bonjour rv

merci de ta réponse.
je ne sai pas sil y a un pb dans ton code ou bien si je le met pas au bon endroit mais ca ne fonctionne pas.

cest un boulot que je dois rendre ce soir ne tembète pas je vais changer les liens a la mains je dois en avoir une 100aine ca devré etre "vite fait"

merci de ton aide
Jacky
Commenter la réponse de Jacky1002
Messages postés
94
Date d'inscription
mardi 11 mai 2010
Statut
Membre
Dernière intervention
3 avril 2011
0
Merci
Merci beaucoup de ta réponse

elle me sera utile une autre fois je pense pcq comme par défaut les Excels s'enregistre en .xlsx je pense que j'aurais a nouveau le problème...

un énorme merci en tout cas pcq se pencher sur du VB à 6h du mat' chapeau melon l'artiste ( tes insomniaque ou tu te lève tôt ? ^^)

merci mille fois
Jacky
Commenter la réponse de Jacky1002