bonjour,

j'ai un code ci dessous qui me permet de mettre à jour mes liaisons de données au sein d'un ensemble de classeur excel situé dans un dossier, malheureusement il ne met pas à jour les liaisons incluses dans des formules (fonction SI ou MAX dans lesquelles on trouve des chemins UNC).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
    For Each FileItem In SourceFolder.Files
        If Right(FileItem.Name, 4) = ".xls" Then
            OpenedFile = FileItem.ParentFolder & "\" & FileItem.Name
            Workbooks.Open OpenedFile, UpdateLinks:=False
            ActiveWorkbook.Unprotect Password:="1237"
             ActiveSheet.Unprotect Password:="1237"
            Range("B1").Select
            ActiveCell.FormulaR1C1 = "Mise à jour des liaisons et des liens effectués"
            aLinks = Workbooks(FileItem.Name).LinkSources(xlExcelLinks)
            If Not IsEmpty(aLinks) Then
                i = 1
                For Each aLink In aLinks
                    If InStr(UCase(aLink), UCase(strAncSrv), 1) <> 0 Then
                    message4 = "Link " & i & ":" & Chr(13) & aLinks(i)
                     aLinks(i) = Replace(UCase(aLink), UCase(strAncSrv), UCase(strMyRepl))
                     MsgBox message4 & vbCrLf & "corrigé Link " & i & ":" & Chr(13) & aLinks(i)
                    ActiveWorkbook.ChangeLink UCase(aLink), aLinks(i), xlExcelLinks
                    i = i + 1
                    End If
                 Next aLink
            End If
            Workbooks(FileItem.Name).Saved = True
             ActiveWorkbook.Protect Password:="1237"
             ActiveSheet.Protect Password:="1237"
            Workbooks(FileItem.Name).Close SaveChanges:=True
           End If
    Next FileItem
De quelle façon peut on mettre à jour les liaisons au sein des cellules?

merci pour vos suggestions