VBA - Copie d'une feuille d'un classeur dans un autre classeur

nanie13

XLDnaute Nouveau
Bonjour,
Débutante en VBA, je galère pour finaliser mon facturier.
Je possède deux classeurs : 1 classeur "modèles" et 1 classeur "factures".
Je souhaiterais copier la facture du classeur "modèles", dans le classeur "factures".
Ma macro fonctionne si j'indique le numéro de la dernière feuille.
Merci pour votre aide.


Sub Copie_Facture()
'var
Dim nbfeuille As Integer
Dim numfact As Integer
nbfeuille = Sheets.Count 'compte le nombre de feuilles
ActiveSheet.Copy After:=Workbooks("Factures Eric 2007.xls").Sheets(19)
nbfeuille = Sheets.Count
numfact = nbfeuille + 1
Sheets(nbfeuille).Name = "Facture n° " & (numfact)
Range("G3").Value = numfact
Sheets(nbfeuille).Select
End Sub
 

Yoann_c

XLDnaute Nouveau
Re : VBA - Copie d'une feuille d'un classeur dans un autre classeur

Re

A 1ere vue
remplacer
Code:
 Set xlSheet1 = feuille

Code:
 Set xlSheet1 = ActiveSheet

:confused: Pourquoi ?
Mon but est d'exporter une feuille passer en paramètre de ma fonction pour éviter une interaction de l'utilisateur.

Merci Yann pour ton aide mais je n'arrive toujours pas à exporter ma feuille.
Maintenant j'ai l'erreur : "la méthode copy de la classe worksheet a échoué"

voici mon code à l'heure actuelle :
Code:
Function creerFichier(chemin As String, feuille As Worksheet)
Dim xlApp As Excel.Application

Dim xlSheet1 As Excel.Worksheet
Dim xlBook2 As Excel.Workbook
Dim xlSheet2 As Excel.Worksheet


    'On créer l'objet Excel
    Set xlApp = CreateObject("Excel.Application")
    'On défini le nombre d'onglets
    xlApp.SheetsInNewWorkbook = 1
    'On ajoute un classeur
    Set xlBook2 = xlApp.Workbooks.Add
    'On donne un nom au classeur
    xlBook2.SaveAs (chemin)
    'On rend le classeur visible
    'xlApp.Visible = True
    
    ' Selection de la feuille source du classeur actif par son nom.
    Set xlSheet1 = feuille

    Dim nbfeuille  As Integer
    
    nbfeuille = xlBook2.Sheets.Count
    ' Copie de la feuille.
    xlSheet1.Select
    ThisWorkbook.ActiveSheet.Copy before:=xlBook2.Worksheets(xlBook2.Worksheets.Count)
    
    xlBook2.Save
    xlBook2.Close
    xlApp.Quit
    Set xlApp = Null
    
End Function
 

pierrejean

XLDnaute Barbatruc
Re : VBA - Copie d'une feuille d'un classeur dans un autre classeur

Re

Quant as-tu initialisée la variable feuille ?

insere cette ligne et dis-nous ce qu'affiche la msgbox

Code:
' Selection de la feuille source du classeur actif par son nom.
   [COLOR=blue] msgbox(feuille.name)[/COLOR]
    Set xlSheet1 = feuille
 

Yoann_c

XLDnaute Nouveau
Re : VBA - Copie d'une feuille d'un classeur dans un autre classeur

Je l'initialise quand j'appelle la fonction :
Code:
Call creerFichier(ThisWorkbook.Path & "\" & cb_art.Value & "_PIC_" & Day(Date) & Month(Date) & Year(Date) & "_1", Sheets("paramètres"))

J'ai testé le "feuille.name" dans la fenêtre d’exécution et je retrouve bien son nom, idem pour la feuille "Feuil1" du classeur créé.

J'ai fais un peu de ménage dans mon code mais toujours la même erreur :
Code:
Function creerFichier(chemin As String, feuille As Worksheet)
Dim xlApp As Excel.Application

Dim xlSheet1 As Excel.Worksheet
Dim xlBook2 As Excel.Workbook

    Set xlSheet1 = feuille
    'On créer l'objet Excel
    Set xlApp = CreateObject("Excel.Application")
    'On ajoute un classeur
    Set xlBook2 = xlApp.Workbooks.Add
    'On enregistre le nouveau classeur
    xlBook2.SaveAs (chemin)
    ' Copie de la feuille.
    xlSheet1.Select
    ThisWorkbook.ActiveSheet.Copy before:=xlBook2.Worksheets(1)
    
    xlBook2.Save
    xlBook2.Close
    xlApp.Quit
    Set xlApp = Null
    
End Function
 

YANN-56

XLDnaute Barbatruc
Re : VBA - Copie d'une feuille d'un classeur dans un autre classeur

Bonjour à tous,

Sur la pointe des pieds pour ne pas déranger... :D :D :D

Un dernier exemple joint dans lequel, après avoir copié la Feuille "MATRICE" on peut écrire ce que l'on veut dans cette dernière et par la suite l'enregistrer en tant que Nouveau Classeur avec le nom que l'on souhaite. (Sans parler de la facilité de modifier la destination)

Désolé de ne pas avoir fait plus compliqué... :)

Amicalement.

Yann
 

Pièces jointes

  • TON_PROJET.xls
    32 KB · Affichages: 358
  • MATRICE.xls
    14.5 KB · Affichages: 319
  • MATRICE.xls
    14.5 KB · Affichages: 336
  • MATRICE.xls
    14.5 KB · Affichages: 352

sandjo

XLDnaute Nouveau
Re : VBA - Copie d'une feuille d'un classeur dans un autre classeur

Bonjour,

je suis totalement débutant en VBA, J'ai un classeur que je mets en forme.
j'essaye d'insérer une nouvelle feuille avec des formules dans mon classeur avec l'aide d'un bouton mais je ne sais pas comment faire. J'ai essayer en faisant un enregistrement macro mais ca ne fonctionne pas.

Pouvez vous m'aider?
 

pat77220

XLDnaute Nouveau
Re : VBA - Copie d'une feuille d'un classeur dans un autre classeur

bonjour,

je suis également débutant en macro et en VBA.
je m'y mets car à titre professionnel et personnel j'ai besoin d'automatiser certaines actions dans excel donc j'ai besoin de vos précieuses compétences.
voila mon objectif:
j'ai un répertoire dans lequel je classe les réponses de 100 clients (départements) numérotés de 01 à 100, nom: Dep001, Dep002
chaque DepXXX contient un onglet nommé avec le numéro du Dep, 01 pour Dep001, 02 pour Dep002 et ainsi de suite.
je souhaite recopier la feuille de chaque client dans un classeur unique (synthèse2011) et dans l'ordre de 01 à 100
dans ce forum j'ai vu des choses qui y ressemblent mais que je n'arrive pas à modifier et à adaper à ma situation.

quelqu'un peut m'aider

en vous remerciant

de ce que j'ai vu ce que vous faites est vraiment top, et c'est vraiment sympa d'en faire profiter à ceux qui comme moi
veulent s'y mettre mais ont devant eux beacoup de chemin.
 

Discussions similaires

Statistiques des forums

Discussions
312 164
Messages
2 085 869
Membres
103 007
dernier inscrit
salma_hayek