Supprimer les liaisons après copie d'un onglet

Bonjour,

je me permets de vous contacter car j'ai un code vba qui me permet de copier un onglet dans d'autres classeurs.

Ce code fonctionne bien.

Le seul hic est que lorsque la feuille est copié dans d'autres classeurs. Des liaisons entre crochets s'affichent dans les classeurs où j'ai copié la feuille. J'aimerais les supprimer et que les formules s'actualisent avec les données figurant dans les classeurs. Je me suis aidé de l'enregistreur de macro pour procéder cependant cela ne fonctionne pas. Lorsque j'ouvre mes classeurs, les éléments entre crochets (du classeur source) figurent toujours...

Public Sub Test()

Dim sourceSheet As Worksheet

Dim folder As String, filename As String

Dim destinationWorkbook As Workbook

'Copie l’onglet actif “ETUDE” dans une nouvel onglet des X fichiers excel de mon folder

Set sourceSheet = ActiveWorkbook.Worksheets("ETUDE")

'Le dossier contenant mes X fichiers excel

folder = "C:\test\"

filename = Dir(folder & "*.xlsm", vbNormal)

While Len(filename) <> 0

Debug.Print folder & filename

Set destinationWorkbook = Workbooks.Open(folder & filename)

sourceSheet.Copy before:=destinationWorkbook.Sheets(1)

‘ Tout fonctionne sauf cette partie les liaisons entre crochets ne sont pas supprimés

Selection.Replace What:= _

"[*]", Replacement:= _

"", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, _

SearchFormat:=False, ReplaceFormat:=False

destinationWorkbook.Close True

filename = Dir() ' Get next matching file

Wend

End Sub

Bonjour Violaine, bonjour le forum,

Utilise les balises </> pour envoyer du code, c'est beaucoup plus lisible...

Dans ton code tu parles de Selection mais tu ne sélectionnes rien ?!...

Essaie comme ça (non testé) :

Public Sub Test()
Dim sourceSheet As Worksheet
Dim folder As String, filename As String
Dim destinationWorkbook As Workbook

'Copie l’onglet actif “ETUDE” dans une nouvel onglet des X fichiers excel de mon folder
Set sourceSheet = ActiveWorkbook.Worksheets("ETUDE")
'Le dossier contenant mes X fichiers excel
folder = "C:\test\"
filename = Dir(folder & "*.xlsm", vbNormal)
While Len(filename) <> 0
    Debug.Print folder & filename
    Set destinationWorkbook = Workbooks.Open(folder & filename)
    sourceSheet.Copy before:=destinationWorkbook.Sheets(1)
    ActiveSheet.Cells.Select '<------------- ICI
    Selection.Replace What:="[*]", Replacement:="", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
    destinationWorkbook.Close True
    filename = Dir() ' Get next matching file
Wend
End Sub

Cela fonctionne !!

Merci beaucoup. il me manquait en effet ActiveSheet.Cells.Select

pour que vba comprenne quoi sélectionner.

Bonne journée à vous.

Rechercher des sujets similaires à "supprimer liaisons copie onglet"