Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Supprimer les liens

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
 
G

Guest

Guest
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:

sokour

XLDnaute Occasionnel
Re : Supprimer les liens

Meric pour la reponse mais il y a un problème au niveau de la macro :

Dim sh As Worksheet

For Each sh In Worksheets
Do sh.Hyperlinks.Count > 0
sh.Hyperlinks(1).Delete
Loop
Next sh
 

James007

XLDnaute Barbatruc
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 +
 
G

Guest

Guest
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+
 
G

Guest

Guest
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+
 

Discussions similaires

Réponses
3
Affichages
476
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…