Copier des données sans afficher le classeur

Rewstah

XLDnaute Nouveau
Bonjour à tous,

Je viens voir par ici car depuis quelques jours je développe sous exel 2007 une petite base de données. Ma question ne porte pas sur la base de données, mais sur les manières de la rendre plus "pro". Je m'explique:

J'ai une base de données de modèles de voitures dans un classeur "BDD.xls" séparé, et un autre classeur "Interface.xlsm", composé d'une feuille "consultation" et d'une feuille "calculs".
A chaque ouverture d'Interface.xlsm, le classeur "BDD.xls" est ouvert par macro pour mettre à jour les données (copier-coller automatisé entre les deux classeurs).

Le problème est qu'à chaque éxécution, BDD.xls est ouvert, puis Interface.xlsm est réactivé, le tout très rapidement, ce qui donne un "scintillement".
Y a-t-il un moyen d'éviter d'avoir à activer (afficher) le document sur lequel on souhaite copier des données par macro? Ou même de modifier une feuille ou un classeur séparé sans avoir à l'activer?

Merci beaucoup!
 

solquagerius

XLDnaute Junior
Re : Copier des données sans afficher le classeur

Dans la macro, au lieu de mettre

Code:
Application.Workbooks.Open(chemin du fichier)

il faut mettre
Code:
GetObject(chemin du fichier)

et penser à fermer le document via la macro.

Enfin je connais pas ton code, mais je ne dois pas être loin :)
 

Rewstah

XLDnaute Nouveau
Re : Copier des données sans afficher le classeur

Merci pour la réponse éclair!

Malheureusement mon entreprise m'interdit d'envoyer un fichier exemple, je ne peux donc pas te montrer mon code...
Mais effectivement, tu es très proche! :D
Et une fois "BDD.xls" ouvert par la méthode GetObject, par exemple, comment puis-je copier du contenu dans "BDD.xls" pour le coller sur "Interface.xlsm", sans changer de fenêtre?
 

solquagerius

XLDnaute Junior
Re : Copier des données sans afficher le classeur

Après tu l'utilises dans la macro comme si le fichier était "visible", y'a rien à changer. Et comme on ne voit pas le fichier, il ne devrait pas y avoir de changement de fenêtre...
De toute façons, sur tous les traitements impliquant des écritures dans un classeur, je conseillerais de désactiver le rafraichissement de l'écran. A ce moment là, plus de problèmes !

Application.ScreenUpdating = false 'pour désactiver
Application.ScreenUpdating = true 'pour réactiver
 

Discussions similaires

Réponses
7
Affichages
390

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 413
Messages
2 088 199
Membres
103 763
dernier inscrit
p.michaux