Bonjour,
J'ai fais un script qui permet de copier certains onglets d'une feuille excel a destination de la feuille active. Ca marche nickel sauf que j'ai un probleme avec les liens internes qui pointe vers le fichier source après copie...
Exemple : Si mon fichier source contient deux onglets "test" et "test2" avec une cellule de mon onglet "test2" qui est "=test1!A1". Si je copie les onglets avec le script (ca marche si je le fais manuellement), cette formule deviendra "=='C:\MONCHEMIN\[MONFICHIERSOURCE.xlsm]Test1'!A1" dans l'onglet "Test2" copié. Savez-vous comment lui dire de conserver "=test1!A1" ?
Merci d'avance !
Voici le script (Info : ListOfSheetToCopy est une liste dont le même nombre d'élément = nombre d'onglet que contient le fichier excel "source". 1 est la valeur donnée à l'entrée de ListOfSheetToCopy si le numéro de l'onglet est a copier (0 sinon) :
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 Sub SuiteProg2(ListOfSheetToCopy) Dim compteur As Integer Dim Elmt As Variant Dim wbFileA As Workbook Dim wbFileB As Workbook Dim sh As Worksheet Dim shCopAfter As Worksheet Set wbFileA = Application.Workbooks.Open("Chemin du fichier source") Set wbFileB = Application.ThisWorkbook ThisWorkbook.Activate Set shCopAfter = wbFileB.Sheets(wbFileB.Sheets.Count) compteur = -1 For Each sh In wbFileA.Sheets compteur = compteur + 1 If ListOfSheetToCopy(compteur) > 0 Then sh.Copy After:=shCopAfter Set shCopAfter = wbFileB.Sheets(wbFileB.Sheets.Count) End If Next sh wbFileA.Activate ActiveWorkbook.Close End Sub
Partager