Transfert de feuilles entre deux instances Excel

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 !

GeoTrouvePas

XLDnaute Impliqué
Bonjour le forum,

Je viens de créer une petite procédure pour transférer "discrètement" une feuille d'un classeur à un autre.

Afin que cela soit invisible pour l'utilisateur, je crée une nouvelle instance Excel invisible dans laquelle j'ouvre le fichier source.

Or je viens de me rendre compte qu'il n'est pas possible de transférer une feuille entre deux instances par la méthode .Copy.

Auriez vous une idée pour contourner cette limitation tout en gardant le côté discret de la manip.

Voici le petit code que j'ai élaboré :

Code:
Sub ImporterSauvegarde(FichierdeSauvegarde As String)
    InstanceSauvegarde As Excel.Application
    ClasseurSource As Workbook
    FeuilleACopier As Worksheet
    
    Set InstanceSauvegarde = CreateObject("Excel.Application")
    InstanceSauvegarde.Visible = False
    Set ClasseurSource = InstanceSauvegarde.Workbooks.Open(FichierdeSauvegarde)
    Set FeuilleACopier = ClasseurSource.Sheets("Feuil1")
    
    FeuilleACopier.Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
End Sub

Edit : Question subsidiaire : j'ai également un problème lorsque deux versions d'excel sont installées sur le pc. Comment faire :

Code:
Set InstanceSauvegarde = CreateObject("Excel.Application")

en précisant quelle version d'excel je veux que ça ouvre ?

Merci d'avance à tous et bonne journée
 
Re : Transfert de feuilles entre deux instances Excel

Oui j'avais effectivement pensé à un système de copier coller tout bête mais j'ai oublié de dire le plus important : mes cellules sont nommées et je ne dois pas perdre ces noms. Or le copier coller ne garde pas le nom des plages.
 
Re : Transfert de feuilles entre deux instances Excel

Bonjour,
Comprends pas....
Code:
Dim ws As Worksheet, wb As Workbook
Set ws = ActiveSheet
Application.ScreenUpdating = False
FichierdeSauvegarde = "X:\xxx.xls"
Set wb = Workbooks.Open(FichierdeSauvegarde)
t = Timer
wb.Sheets("Feuil1").Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
wb.Close False
ws.Activate
t = Timer - t
Application.ScreenUpdating = True
MsgBox t
....chez moi : 0,0425 seconde...!
A+
kjin
 
Re : Transfert de feuilles entre deux instances Excel

Il est là le soucis kjin :
....chez moi : 0,0425 seconde...!

Traduction : vu la lenteur du réseau de ma boîte (en général tu double clic sur le fichier le lundi et tu repasses le vendredi pour voir si c'est ouvert...) et le grand nombre de feuilles que je dois importer (je n'ai mis qu'un extrait de l'énorme boucle que j'ai du faire), cette macro est très longue a exécuter et ouvre un grand nombre de fichiers.

Du coup j'aurai voulu masquer l'opération pour faire un peu plus "propre".

Mais bon, tant pis, je me suis assez compliqué la vie jusqu'à maintenant. ^^

En tout cas merci de m'avoir éclairé.

Bonne fin de journée
 
Re : Transfert de feuilles entre deux instances Excel

Bonjour GeoTrouvePas,
Kjin🙂

GeoTrouvePas à dit:
grand nombre de feuilles que je dois importer

Idée:

Si elle viennent toutes du même classeur peut-être serait-il plus rapide de faire une copie de ce dernier avec un nouveau nom et d'en supprimer les feuilles en trop.

A+
 
Re : Transfert de feuilles entre deux instances Excel

Désolé Hasco, je n'avais pas vu ta réponse.
J'ai pensé procéder comme ça mais, là où mon réseau pêche, c'est dans l'enregistrement des fichiers. Mes fichiers d'origine étant relativement conséquents, en enregistrer une copie pour en supprimer une partie ne serait pas vraiment viable.

Tant pis, quand on a un matos pourri, on se débrouille ! ^^

J'ai finalement opté pour la méthode "classique" d'export de feuilles, tant pis si ça reste visible pour l'utilisateur, au moins ça n'est pas trop lent.

Bonne journée.
 
- 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
Retour