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

Résolu
Jacky1002 Messages postés 94 Date d'inscription mardi 11 mai 2010 Statut Membre Dernière intervention 3 avril 2011 - 5 mai 2010 à 15:53
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

4 réponses

rv83toulon Messages postés 68 Date d'inscription mercredi 2 mars 2011 Statut Membre Dernière intervention 25 avril 2013
7 mai 2010 à 06:41
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à.
@+
3
rv83toulon Messages postés 68 Date d'inscription mercredi 2 mars 2011 Statut Membre Dernière intervention 25 avril 2013
6 mai 2010 à 10:46
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.
@+
0
Jacky1002 Messages postés 94 Date d'inscription mardi 11 mai 2010 Statut Membre Dernière intervention 3 avril 2011
6 mai 2010 à 14:17
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
0
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
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
0
Rejoignez-nous