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

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
 

MichD

XLDnaute Impliqué
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)
 

Papoune

XLDnaute Nouveau
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.
 

Discussions similaires

Statistiques des forums

Discussions
311 732
Messages
2 081 995
Membres
101 857
dernier inscrit
mt60400