Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Comment rompre des liaisons en VBA?

4 réponses
Avatar
Noegor
Bonjour,
En VBA, à partir de la feuille "novembre" du dossier "AN2006", je crée un
nouveau dossier : "Novembre2006", ne comportant que cette feuille.
Lorsque par la suite, j'ouvre ce nouveau dossier, le message sur les
liaisons apparaît. Je souhaiterais qu'au moment de la création de ce
dossier, faire en sorte que les liens soient rompus de façon à éviter le
fameux message des liaisons.
Comment faire en VBA?
D'avance merci.
Noégor

4 réponses

Avatar
MichDenis
| faire en sorte que les liens soient rompus de façon à éviter le
| fameux message des liaisons.

Pour rompre les liens de façon définitive :

'------------------------
Sub test()

Dim LesLiens As Variant
LesLiens = ThisWorkbook.LinkSources

For Each lien In LesLiens
ThisWorkbook.BreakLink Name:=Lien, Type:=xlExcelLinks
Next

End Sub
'------------------------
Avatar
Noegor
Merci à TOUS. Vous m'avez même donné plusieurs solutions.
A bientôt pour d'autres tuyaux.
Noégor
"Noegor" a écrit dans le message de news:

Bonjour,
En VBA, à partir de la feuille "novembre" du dossier "AN2006", je crée un
nouveau dossier : "Novembre2006", ne comportant que cette feuille.
Lorsque par la suite, j'ouvre ce nouveau dossier, le message sur les
liaisons apparaît. Je souhaiterais qu'au moment de la création de ce
dossier, faire en sorte que les liens soient rompus de façon à éviter le
fameux message des liaisons.
Comment faire en VBA?
D'avance merci.
Noégor



Avatar
Noegor
Bonsoir,
J'ai testé le code et le systèm me répond que "lien" n'est pas défini. Je
l'ai défini AS Object, mais le lien n'a pas été supprimé et il ne passe pas
dans la boucle car j'ai positionné un MsgBox qui ne s'est pas mmanifesté.
Je l'ai défini As Variant, il passe dans la boucle mais le lien n'est pas
rompu.
Que faire?
Merci de votre patience et de votre compréhension pour mon ignorance.
Bien à vous.
Noégor
"MichDenis" a écrit dans le message de news:


| faire en sorte que les liens soient rompus de façon à éviter le
| fameux message des liaisons.

Pour rompre les liens de façon définitive :

'------------------------
Sub test()

Dim LesLiens As Variant
LesLiens = ThisWorkbook.LinkSources

For Each lien In LesLiens
ThisWorkbook.BreakLink Name:=Lien, Type:=xlExcelLinks
Next

End Sub
'------------------------






Avatar
DesseJ
Bonjour, Bonsoir Noegor,

Tu peux utiliser ces deux procédures : une pour supprimer les liaisons
externes utilisées dans les formules, une pour les noms externes etc.

Cordialement,
Steph. D.


'======================== ===============

''SUPPRESSION DES LIENS EXTERNES
Sub SupprimeLiaisonsExternesDansFormule()
Dim MaFeuille As Worksheet
Dim MaCellule As Range
Dim MaPlage As Range
Dim LxFin#, CxFin#
Application.ScreenUpdating = False
For Each MaFeuille In ActiveWorkbook.Worksheets
MaFeuille.Activate
If Application.WorksheetFunction.CountA(MaFeuille.Cells) <>
0 Then
With Cells
LxFin = .Find("*", [A1], , , xlByRows,
xlPrevious).Row
CxFin = .Find("*", [A1], , , xlByColumns,
xlPrevious).Column
End With
Set MaPlage = MaFeuille.Range(Cells(1, 1), Cells(LxFin,
CxFin))
For Each MaCellule In MaPlage
If MaCellule.HasFormula = True And InStr(1,
MaCellule.Formula, "[", 0) > 0 Then
MaCellule.Formula = MaCellule.Value
End If
Next MaCellule
End If
Next MaFeuille
Set MaPlage = Nothing
Application.ScreenUpdating = True
End Sub

Sub EffaceLesNomsReferenceExterne()
Dim MaCelluleNommee As Name
Dim i As Integer
Application.ScreenUpdating = False
For i = ActiveWorkbook.Names.Count To 1 Step -1
If ActiveWorkbook.Names(i).RefersTo Like "*]*" Or
ActiveWorkbook.Names(i).RefersTo Like "*REF*" Then
ActiveWorkbook.Names(i).Delete
End If
Next
Application.ScreenUpdating = True
End Sub