Creation d'un nouveau Classeur et copie d'un onglet

  • Initiateur de la discussion Initiateur de la discussion Papoune
  • 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 !

Papoune

XLDnaute Nouveau
Bonjour à tous

D'aobord merci d'avance à tous ceux qui chercheront à m'aider..
Mon problème est simple..

A travers un userform je sélectionne le nom d'un classeur à créer.
Le créée le classeur. OK
Une fois le classeur créé je cherche à copier un onlet(feuille "CAUSES") dans ce nouveau classeur créé. Mais j'ai une erreur 1004 "l'indice n'appartient pas à la sélection" !!!!!
Je veux faire la copie de cet onglet car celui-ci contient des zones de nom dont j'ai besoin dans le nouveau classeur.

Ou alors si quelqu'un peut me dire comment faire pour définir des zones de nom dynamique ( longueur variable) dans un classeur nouvellement créé, je suis preneur aussi

Voici le code ..

Private Sub cmd_Export_Click()
Dim rData As Range
Dim indexTbl As Integer
Dim intNbColTbl As Long
Dim iLineExport As Long
Dim xlBookSrc As Excel.Workbook

'Init
On Error GoTo cmd_Export_Click_Error

pstrPathExport = wshParam.Range("B5")
Application.DisplayAlerts = False

Application.ScreenUpdating = False

'Mapping Fournisseur
Set_Mapping_Export
Set xlBookSrc = ActiveWorkbook

'Creation New File Fournisseur
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Add
NewFile = "LOB_" & strCustomerFileName & "_" & strCustomerFactoryName & ".xls"
xlBook.SaveAs (pstrPathExport & NewFile)
Set xlData = xlBook.Worksheets(1)
xlData.Name = "DATA"

'======================
'Traitement de l'export
'======================
............. Copie de donnée dans le nouveau classeur sans problème

'======================
'Traitement des Liste
'======================
'Copy/Paste des listes

xlBookSrc.Sheets("Cause").Select
xlBookSrc.Sheets("Causes").Copy before:=xlBook.Sheets(2)
<== Le probleme ce situe ICI !!


....... Fin de traitement ......

End Sub


Encore merci pour votre aide préciseuse.

Papoune
 
Re : Creation d'un nouveau Classeur et copie d'un onglet

Bonjour,

Problème avec la dernière section de ton code.

Pourquoi veux-tu créer une seconde instance d'Excel avec : Set xlApp = CreateObject("Excel.Application")

Dans ton code, le nom de la feuille "CAUSE" est écrit avec un S et sans S. Quel est le vrai nom?
Quelque chose comme ceci devrait être suffisant. Les variables sont habituellement déclarées
dans le haut de la procédure...

'Creation New File Fournisseur
Dim XlBook As Workbook
Dim xlData As Worksheet
Dim NewFile As String

Set XlBook = Workbooks.Add
NewFile = "LOB_" & strCustomerFileName & "_" & strCustomerFactoryName & ".xls"
XlBook.SaveAs (pstrPathExport & NewFile)
Set xlData = XlBook.Worksheets(1)
xlData.Name = "DATA"

xlBookSrc.Sheets("Causes").Copy _
before:=XlBook.Sheets(2)
 
Re : Creation d'un nouveau Classeur et copie d'un onglet

Bonjour MichD

Merci pour ta réponse rapide et effectivement l'erreur venait de l'ouverture d'une instance d'excel en plus !
(Copier/coller de code !!!)
Cela marche parfaitrement maintenant.
Merci encore.
 
- 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

L
Réponses
3
Affichages
14 K
lezabour
L
Retour