XL 2010 [Résolu] Création nouveau classeur puis copie onglets VBA

  • Initiateur de la discussion Initiateur de la discussion Spinzi
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Spinzi

XLDnaute Impliqué
Bonjour à tous,

J'ai un fichier source avec 3 onglets (cf PJ).

Je souhaite dupliquer ces 3 onglets avec toutes leurs spécificités (button, tableau, etc.) ainsi que les modules compris dans le fichier source vers un autre classeur.

Cet autre classeur est créé via une invite utilisateur qui rentre le nom du fichier souhaité et le sauvegarde.

Mon problème :
_Mon code ne copie pas les onglets sur le fichier nouvellement créé mais sur un autre fichier.
_De plus j'ai une erreur d'exécution 1004 : "Mircosoft [...] ne peut accéder au fichier [...]".
_Mes fichiers plantent à la suite de la macro et je dois les fermer.

Je suis novice en VBA et j'ai monté le code tout seul donc je suis preneur de toute astuce et code détaillé.
Voici le code :
Code:
Sub Exporter()
Dim Chemin As String, Nom As String, Chemin_Complet As String

'// On bloque le rafraichissement de l'écran + affichage d'erreur + calcul automatique
  Application.ScreenUpdating = False
  Application.DisplayAlerts = False
  Application.Calculation = xlCalculationManual

Set Newbook = Application.Workbooks.Add 'creation
  Chemin = ThisWorkbook.Path & "\"
  Nom = InputBox("Nom du fichier à sauvegarder :", "Nom fichier")
  Chemin_Complet = Chemin & Nom & ".xlsm"
  
  Newbook.SaveAs Filename:=Chemin_Complet, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
  
  Workbooks("Test").Activate
  ThisWorkbook.Sheets("1").Copy
  ActiveWorkbook.SaveCopyAs Filename:=Chemin_Complet
  ThisWorkbook.Sheets("2").Copy
  ActiveWorkbook.SaveCopyAs Filename:=Chemin_Complet
  ThisWorkbook.Sheets("3").Copy
  ActiveWorkbook.SaveCopyAs Filename:=Chemin_Complet

'// On débloque le rafraichissement de l'écran + affichage d'erreur + calcul automatique
  Application.ScreenUpdating = True
  Application.DisplayAlerts = True
  Application.Calculation = xlCalculationAutomatic
  
End Sub

Merci d'avance,

Spinzi
 

Pièces jointes

Dernière édition:
Petit up :

le but de cette macro est de garder le fichier source ouvert (il est long à ouvrir car lié à d'autres fichiers sur d'autres serveurs) en créant un nouveau fichier sélectionné via une invite et en dupliquant tous les onglets de la source à l'intérieur (+ module macro !).

Toute aide est la bienvenue, car ca dépasse mes compétences (le pas à pas à des limites) =)

Edit : j'ai essayé un code de cet acabit mais le probleme c'est que mes formules gardent les liaisons avec mon fichier source
Code:
FichierOùCopier = ActiveWorkbook.Name
  Application.Workbooks.Add
  FichierOùColler = ActiveWorkbook.Name
  Workbooks(FichierOùCopier).Activate
  Sheets("1").Select
  Sheets("1").Copy After:=Workbooks(FichierOùColler).Sheets(2)
  Workbooks(FichierOùCopier).Activate
  Sheets("2").Select
  Sheets("2").Copy After:=Workbooks(FichierOùColler).Sheets(2)

J'ai également essayé un code optimisé comme celui ci :
Code:
Workbooks("Test").Sheets("1").Copy
Workbooks("Test").Sheets("2").Copy
mais le code me copie les onglets dans de nouveaux classeurs


Spinzi
 
Dernière édition:
Bonjour,

je laisse tomber ce fil car en réfléchissant il ne peut y avoir de bonne solution pour mon problème (pour garder les liaisons entre fichier la copie ne fonctionne pas). Je n'ai donc pas le choix que de rouvrir mon fichier à chaque fois.

Spinzi
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
672
Réponses
3
Affichages
582
Retour