Copier une feuille d'un classeur fermé vers un classeur ouvert

a-tchittat

XLDnaute Nouveau
Salut tout le monde ...

Je craque, je ne trouve pas la solution ...
Voilà ce que j'aimerais faire : j'ai un classeur ouvert dans le lequel j'aimerais copier une feuille venant d'un autre classeur excel que je laisserai fermé.
J'ai essayé un bout de code mais il me renvoie une erreur sur la méthode "Copy" ...

Voilà mon code :
Dim xlApp As New Excel.Application
Dim xlBook As New Excel.Workbook
Dim xlSheet As New Excel.Worksheet

Sub cmdGenerer_Click()
Set xlBook = xlApp.Workbooks.Open(chFichExtr)
Set xlSheet = xlBook.Sheets(1) ' si on veut utiliser une feuille
xlSheet.Copy Before:=Workbooks(aWBook).Sheets(3) <= problème !
Application.CutCopyMode = False
...
end sub

aWBook est le nom de mon classeur ouvert.

Avez-vous une idée svp ?

Merci d'avance et bon WE !!!
 

skoobi

XLDnaute Barbatruc
Re : Copier une feuille d'un classeur fermé vers un classeur ouvert

Bonsoir,

sur le classeur ouvert, vérifie qu'il y a bien 3 feuilles et qu'il n'y a pas une feuille ayant déjà le même nom que celle à copier.
 

a-tchittat

XLDnaute Nouveau
Re : Copier une feuille d'un classeur fermé vers un classeur ouvert

Pardon à tous, j'avais cru que j'avais coché l'option de recevoir des mails s'il y avait eu une réponse à mon post !!! Du coup, entre temps, je me suis effectivement penché sur les requêtes SQL dans excel ... je débute dans ce domaine, mais cela va régler mon problème !!

Donc merci à tous pour votre attention et vos réponses et bonne journée !
 

michel_m

XLDnaute Accro
Re : Copier une feuille d'un classeur fermé vers un classeur ouvert

Bonjour à tous,

A la bourre, copie d'une feuille d'un classeur restant fermé dans un nouvel onglet du classeur actif
Code:
         Fichier = ThisWorkbook.Path & "\tonclasseurfermé.xls"
          
          Set Source = New ADODB.Connection
          Source.Open "Provider = Microsoft.Jet.OLEDB.4.0;" & _
                          "data source=" & Fichier & ";" & _
                          "extended properties=""Excel 8.0;"""
                          
          texte_SQL = "SELECT * FROM [tonongletdansfermé$]"
                              
          Set Requete = New ADODB.Recordset
          Set Requete = Source.Execute(texte_SQL)
   
         'tu ajoutes une feuille a ton classeur ouvert
          ThisWorkbook.Sheets.Add after:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count) 
          ActiveSheet.Name = "lenomque tu veuxdonné à ton onglet"
         'on récupère les données
          ActiveSheet.Range("A1").CopyFromRecordset Requete
   
          'on ferme!
          Requete.Close
          Source.Close
           Set requete=nothing
            Set source=nothing
 

Discussions similaires

Statistiques des forums

Discussions
312 425
Messages
2 088 298
Membres
103 809
dernier inscrit
Joker901