XL 2013 VBA qui supprime une partie des liaisons dans un fichier

onyirimba

XLDnaute Occasionnel
Supporter XLD
Bonjour,
J'ai un fichier qui est lié à 4 autres fichiers Excel par des liaisons:
Suivi Variation IBE VBA TEST TEST 1.xlsm
Suivi Variation IBE VBA TEST TEST 2.xlsm
Suivi Variation IBE VBA TEST TEST 3.xlsm
Suivi Variation IBE VBA TEST TEST 4.xlsm

J'ai essayé le codage VBA ci-dessous pour supprimer uniquement les liens des fichiers Suivi Variation IBE VBA TEST TEST 1.xlsm et Suivi Variation IBE VBA TEST TEST 2.xlsm
mais cela ne fonctionne pas (voir capture d'écran ci-dessous)
Est-ce que vous pouvez m'aider ?

Merci beaucoup de votre aide.
Cordialement.


1648054905756.png
 
Solution
Bonjour
2 liens dans ton fichier : le 2 et Le 5

Ci joint une macro qui supprime ces deux lien uniquement
J'ai mis des message ( que tu supprimeras par la suite) qui t'indique :
1/ les liens existants dans ce fichier .
2/ les liens effectivement supprimés

VB:
Sub Macro1()
    If Not IsEmpty(ActiveWorkbook.LinkSources(xlExcelLinks)) Then
            For Each X In ActiveWorkbook.LinkSources(xlExcelLinks)
            MsgBox "lien dans ce fichier : " & X
            If X Like "*" & "Suivi Variation IBE VBA TEST TEST 2.xlsm" & "*" = True Or X Like "*" & "Suivi Variation IBE VBA TEST TEST 5.xlsm" & "*" = True Then
                MsgBox " Suppression de : " & X
                ActiveWorkbook.BreakLink Name:=X, Type:=xlExcelLinks...

JM27

XLDnaute Barbatruc
Bonjour
Pas testé

VB:
Sub Macro1()
    If Not IsEmpty(ActiveWorkbook.LinkSources(xlExcelLinks)) Then
            For Each X In ActiveWorkbook.LinkSources(xlExcelLinks)
            If X.Name = "Suivi Variation IBE VBA TEST TEST 1.xlsm" or X.Name = "Suivi Variation IBE VBA TEST TEST 2.xlsm" Then
                ActiveWorkbook.BreakLink Name:=X, Type:=xlExcelLinks
            End If
        Next
    End If
End Sub
 

onyirimba

XLDnaute Occasionnel
Supporter XLD
Bonjour
Pas testé

VB:
Sub Macro1()
    If Not IsEmpty(ActiveWorkbook.LinkSources(xlExcelLinks)) Then
            For Each X In ActiveWorkbook.LinkSources(xlExcelLinks)
            If X.Name = "Suivi Variation IBE VBA TEST TEST 1.xlsm" or X.Name = "Suivi Variation IBE VBA TEST TEST 2.xlsm" Then
                ActiveWorkbook.BreakLink Name:=X, Type:=xlExcelLinks
            End If
        Next
    End If
End Sub
Bonjour,

la macro s'arrête lors de l'exécution
est-ce que vous pouvez regarder ?
J'ai joint un fichier illustratif
Merci d'avance
Cordialement
1648117696918.png

1648112097727.png
 

Pièces jointes

  • Classeur1.xlsm
    15.3 KB · Affichages: 4
Dernière édition:

JM27

XLDnaute Barbatruc
Bonjour
2 liens dans ton fichier : le 2 et Le 5

Ci joint une macro qui supprime ces deux lien uniquement
J'ai mis des message ( que tu supprimeras par la suite) qui t'indique :
1/ les liens existants dans ce fichier .
2/ les liens effectivement supprimés

VB:
Sub Macro1()
    If Not IsEmpty(ActiveWorkbook.LinkSources(xlExcelLinks)) Then
            For Each X In ActiveWorkbook.LinkSources(xlExcelLinks)
            MsgBox "lien dans ce fichier : " & X
            If X Like "*" & "Suivi Variation IBE VBA TEST TEST 2.xlsm" & "*" = True Or X Like "*" & "Suivi Variation IBE VBA TEST TEST 5.xlsm" & "*" = True Then
                MsgBox " Suppression de : " & X
                ActiveWorkbook.BreakLink Name:=X, Type:=xlExcelLinks
            End If
        Next
    End If
End Sub
nota: tu n'as pas recopié l'intégralité de la macro ( il faut la laisser boucler sur tous les liens)
De plus comme tu n'avais pas posté de fichier , la macro proposée ne fonctionnait pas.
D'où l'importance de fournir un fichier représentant ton pb.
 

Pièces jointes

  • liens.xlsm
    16.2 KB · Affichages: 5

onyirimba

XLDnaute Occasionnel
Supporter XLD
Bonjour
2 liens dans ton fichier : le 2 et Le 5

Ci joint une macro qui supprime ces deux lien uniquement
J'ai mis des message ( que tu supprimeras par la suite) qui t'indique :
1/ les liens existants dans ce fichier .
2/ les liens effectivement supprimés

VB:
Sub Macro1()
    If Not IsEmpty(ActiveWorkbook.LinkSources(xlExcelLinks)) Then
            For Each X In ActiveWorkbook.LinkSources(xlExcelLinks)
            MsgBox "lien dans ce fichier : " & X
            If X Like "*" & "Suivi Variation IBE VBA TEST TEST 2.xlsm" & "*" = True Or X Like "*" & "Suivi Variation IBE VBA TEST TEST 5.xlsm" & "*" = True Then
                MsgBox " Suppression de : " & X
                ActiveWorkbook.BreakLink Name:=X, Type:=xlExcelLinks
            End If
        Next
    End If
End Sub
nota: tu n'as pas recopié l'intégralité de la macro ( il faut la laisser boucler sur tous les liens)
De plus comme tu n'avais pas posté de fichier , la macro proposée ne fonctionnait pas.
D'où l'importance de fournir un fichier représentant ton pb.
merci
je regarde
 

onyirimba

XLDnaute Occasionnel
Supporter XLD
Bonjour
2 liens dans ton fichier : le 2 et Le 5

Ci joint une macro qui supprime ces deux lien uniquement
J'ai mis des message ( que tu supprimeras par la suite) qui t'indique :
1/ les liens existants dans ce fichier .
2/ les liens effectivement supprimés

VB:
Sub Macro1()
    If Not IsEmpty(ActiveWorkbook.LinkSources(xlExcelLinks)) Then
            For Each X In ActiveWorkbook.LinkSources(xlExcelLinks)
            MsgBox "lien dans ce fichier : " & X
            If X Like "*" & "Suivi Variation IBE VBA TEST TEST 2.xlsm" & "*" = True Or X Like "*" & "Suivi Variation IBE VBA TEST TEST 5.xlsm" & "*" = True Then
                MsgBox " Suppression de : " & X
                ActiveWorkbook.BreakLink Name:=X, Type:=xlExcelLinks
            End If
        Next
    End If
End Sub
nota: tu n'as pas recopié l'intégralité de la macro ( il faut la laisser boucler sur tous les liens)
De plus comme tu n'avais pas posté de fichier , la macro proposée ne fonctionnait pas.
D'où l'importance de fournir un fichier représentant ton pb.
Bonjour,

Cela fonctionne parfaitement
Merci beaucoup
 

Discussions similaires

Réponses
2
Affichages
399

Statistiques des forums

Discussions
312 096
Messages
2 085 254
Membres
102 839
dernier inscrit
Tougtoug