• Initiateur de la discussion Initiateur de la discussion sokour
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

sokour

XLDnaute Occasionnel
Bonjour,

J'ai un classeur qui contient des cellules dans plusieurs feuilles avec des liens : 'C:\Excel\[Test.xls]Printout'!E16

Je voudrais juste conserver la valeur résultant des ces liens et supprimer les liens mais mannuellement le travail est trop long.

Peut on le faire par une macro ou par une fonction Excel.

Merci
 
Re : Supprimer les liens

Bonjour,

Code:
Sub SupprimerLiens()
    Dim sh As Worksheet
    For Each sh In Worksheets
        Do While sh.Hyperlinks.Count > 0
            sh.Hyperlinks(1).Delete
        Loop
    Next sh
End Sub

A+
 
Dernière modification par un modérateur:
Re : Supprimer les liens

Bonjour,

Je me demande s'il n'y a pas une petite confusion au sujet des liens ...
car la macro indiquée supprime les liens du style
Code:
http://www.excel-downloads.com/forum/
alors que tu sembles parler des liens entre fichiers excel ...
Merci d'apporter tes précisions

A +
 
Re : Supprimer les liens

Re,

Le while avait disparu de la boucle d'où l'erreur:

Code:
Sub SupprimerLiens()
    Dim sh As Worksheet
    For Each sh In Worksheets
        Do [SIZE=3][COLOR=red][B]While[/B][/COLOR][/SIZE] sh.Hyperlinks.Count > 0
            sh.Hyperlinks(1).Delete
        Loop
    Next sh
End Sub

@James, cette macro supprime Tous les liens qu'il soient entre classeur ou http ou intra document.

A+
 
Re : Supprimer les liens

Re,

J'avais lu un peu vite la demande initiale🙄

Voici qui conserve uniquement les valeurs des cellules dont les formules contiennent des liens vers d'autres classeurs.

Code:
[COLOR=BLUE]Sub[/COLOR] SupprimerLiensDansFormules()
    [COLOR=BLUE]Dim[/COLOR] sh [COLOR=BLUE]As[/COLOR] Worksheet
    [COLOR=BLUE]Dim[/COLOR] plg [COLOR=BLUE]As[/COLOR] Range, c [COLOR=BLUE]As[/COLOR] Range
    [COLOR=BLUE]Dim[/COLOR] pos [COLOR=BLUE]As[/COLOR] [COLOR=BLUE]Integer[/COLOR]
    [COLOR=BLUE]For[/COLOR] [COLOR=BLUE]Each[/COLOR] sh [COLOR=BLUE]In[/COLOR] Worksheets
        [COLOR=BLUE]On[/COLOR] [COLOR=BLUE]Error[/COLOR] [COLOR=BLUE]Resume[/COLOR] [COLOR=BLUE]Next[/COLOR]
        [COLOR=BLUE]Set[/COLOR] plg = sh.UsedRange.SpecialCells(xlCellTypeFormulas)
        [COLOR=BLUE]On[/COLOR] [COLOR=BLUE]Error[/COLOR] [COLOR=BLUE]GoTo[/COLOR] 0
        [COLOR=BLUE]If[/COLOR] [COLOR=BLUE]Not[/COLOR] plg [COLOR=BLUE]Is[/COLOR] [COLOR=BLUE]Nothing[/COLOR] [COLOR=BLUE]Then[/COLOR]
            [COLOR=BLUE]For[/COLOR] [COLOR=BLUE]Each[/COLOR] c [COLOR=BLUE]In[/COLOR] plg
                [COLOR=BLUE]If[/COLOR] InStr(c.Formula, [i]"]"[/i]) [COLOR=BLUE]Then[/COLOR] c = c.Value
            [COLOR=BLUE]Next[/COLOR] c
        [COLOR=BLUE]End[/COLOR] [COLOR=BLUE]If[/COLOR]
    [COLOR=BLUE]Next[/COLOR] sh
[COLOR=BLUE]End[/COLOR] [COLOR=BLUE]Sub[/COLOR]

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
17
Affichages
784
Retour