1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
| Sub Replace_HL_Adress()
Dim Hl As Hyperlink, Wsh As Worksheet
Dim Msgprompt As String, Msganswer As String, LogInfo As String, LogWarn As String
Dim ConfirmB As Boolean ' Confirmation individuelle lien par lien
Dim SearchTxt As String, ReplaceTxt As String, ReplAnsw As String
Dim HLReplCnt As Integer
' Chaines à trouver / remplacer
SearchTxt = "..\" '"\\fpari01srv1.ddom.ad.corp\share\NC\"
ReplaceTxt = ThisWorkbook.Path & "\" '"B:\Share\A000000210\NC\"
' Confirmation individuelle *** à changer ***
ConfirmB = True
HLReplCnt = 0
' On parcourt toutes les sheets de la collection puis tous les HL de chaque sheet
For Each Wsh In ActiveWorkbook.Worksheets
LogInfo = vbNullString
If Wsh.Hyperlinks.Count > 0 Then
For Each Hl In Wsh.Hyperlinks
' On vérifie que le texte à remplacer est bien présent
If InStr(1, Hl.Address, SearchTxt, vbTextCompare) > 0 Then
ReplAnsw = Replace(Hl.Address, SearchTxt, ReplaceTxt, , , vbTextCompare)
If ConfirmB = True Then
Msgprompt = "Changement adress de l'hyperlien " & Wsh.Name & "-" & Hl.Range.Address & vbCrLf & Hl.Address & "?" & _
String(2, vbCrLf) & "Par: " & ReplAnsw
Msganswer = MsgBox(Msgprompt, vbYesNo)
End If
If Msganswer = vbYes Or ConfirmB = False Then
HLReplCnt = HLReplCnt + 1
Debug.Print HLReplCnt, Hl.Address, ReplAnsw
LogInfo = LogInfo & HLReplCnt & "/" & Hl.Name & vbTab & Hl.Address & vbTab & Hl.Range.Address & vbCrLf
Hl.Address = ReplAnsw
End If
Else: LogWarn = LogWarn & "Sheet " & Wsh.Name & ": " & "-cell: " & Hl.Range.Address & " " & Hl.Address & vbCrLf
End If
Next Hl
End If
Next Wsh
' Rapport
LogInfo = HLReplCnt & " remplacements pour " & ActiveWorkbook.Name & vbCrLf & LogInfo
MsgBox LogInfo
If LogWarn <> vbNullString Then
LogWarn = " Warning: " & ActiveWorkbook.Name & vbCrLf & "Pas de remplacements pour:" & vbCrLf & LogWarn
MsgBox LogWarn, vbExclamation
End If
End Sub |
Partager