Copie de feuilles dans nouveau classeur en gardant les formules entre les feuilles

MH54

XLDnaute Nouveau
Bonjours,

Contexte:
Je dois rédiger un classeur Excel comportant plusieurs onglet bien définis fonction d'options souhaitées.

Pour ce faire:
1/je pars d'un classeur avec tous les onglets possible suivant toutes les options possibles et imaginable (type un classeur physique avec autant de page que de feuille de calcul soit une 40aine de feuilles)

2/je fais des choix d'option (soit : choisir les pages dont j’ai besoin dans le nouveau classeur)
3/j'appuie sur un bouton (abra cadabra)
4/les onglets du classeur visés par les options souhaitées sont copiées dans un nouveau classeur qui est renommé, sauvegardé, et fermé (soit :je prends un classeur vide et je mets uniquement les feuilles dont j’ai besoin).

Problème :
Toutes ces feuilles sont des feuilles de calcul dont les données d’entrée sont centralisées sur une feuille « donnée ».
Lorsque j’ouvre le nouveau classeur, sur les onglets copiés, les liens vers les données d’entrée sont par exemple :
='[classeur source.xls]donnee'!B26
Au lieu de :
='donnee'!B26

Questions :
Comment pourrais-je résoudre mon problème ? J’ai peur que toute la façon dont j’ai pensé mon projet ne soit pas très adaptée à VBA, comment auriez-vous fait ?

Ci-dessous le premier jet de la macro avec le choix des langues (ANGLAIS/FRANÇAIS et oui chaque feuille sera en version anglaise ou française)

Private Sub CommandButton1_Click() ‘Le bouton est sur l’onglet ENTREE
Dim langue As String
langue = Range("D5") ‘cellule de l’onglet ENTREE
MsgBox langue

Dim nom_classseur As String
classseur_source = "classeur source.xls"

Dim nom_note As String
nom_note = Range("D2") ‘nom du nouveau classeur ‘cellule de l’onglet ENTREE
Dim adresse_note As String
adresse_note = Range("D3") ‘adresse du nouveau classeur ‘cellule de l’onglet ENTREE

Windows(classseur_source).Activate

Workbooks.Add
ActiveWorkbook.SaveAs Filename:=adresse_note & "\" & nom_note & ".xls"


If langue = "FRANCAIS" Then
Windows(classseur_source).Activate
Sheets("donnee").Copy After:=Workbooks(nom_note & ".xls").Sheets(1)
Windows(classseur_source).Activate
Sheets("TESTFR").Copy After:=Workbooks(nom_note & ".xls").Sheets(1)

ElseIf langue = "ANGLAIS" Then
Windows(classseur_source).Activate
Sheets("donnee").Copy After:=Workbooks(nom_note & ".xls").Sheets(1)
Windows(classseur_source).Activate
Sheets("TESTEN").Copy After:=Workbooks(nom_note & ".xls").Sheets(1)

Else
MsgBox "ERREUR, Spécifier une langue"
End If

ActiveWorkbook.Save
ActiveWindow.Close
Windows(classseur_source).Activate
Sheets("ENTREE").Select

End Sub
 

herve62

XLDnaute Barbatruc
Supporter XLD
Re : Copie de feuilles dans nouveau classeur en gardant les formules entre les feuill

Slt
Si l'on fait un Copier/Coller d'une feuille "source" vers un nouveau classeur en faisant copier > formules
on récupère le chemin du fichier source ( s'il n'a pas bougé de place) , donc le lien avec les cellules d'autres feuilles
Cela se fait aussi en VBA ( enregistrer une macro en executant les manip. des Copier/Coller puis la mettre dans la Sub_CommandButton
SI tu es à l'aise avec VBA ... ca devrait aller ... ensuite il y a le forum pour te corriger
Bon courage
 

Discussions similaires

Réponses
4
Affichages
355

Statistiques des forums

Discussions
312 215
Messages
2 086 329
Membres
103 180
dernier inscrit
Vcr