VBA - Asigner un fichier à une variable Workbook sans ouvrir le fichier

  • Initiateur de la discussion Initiateur de la discussion pcalzett
  • Date de début Date de début

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 !

pcalzett

XLDnaute Nouveau
Bonjour,
Je suis débutant en VBA, et je suis en train de developper une petite macro. Je voudrais déclarer une variable Workbook, puis affecter un fichier à cette variable mais sans ouvrir le fichier. Voila ce que je fai:

Sub MAJ

Dim MonFichier As Workbook

Set MonFichier= Application.Workbooks.Open ("B:\Statistiques \...\nomdufichier.xls")
....
End Sub

Donc je veux que le Workbook MonFichier soit bien nomdufichier.xls mais sans ouvrir nomdufichier.xls.
Comment je pourrais faire?

Merci d'avance
 
Re : VBA - Asigner un fichier à une variable Workbook sans ouvrir le fichier

Bonsoir,

A priori il faut que le classeur soit ouvert, ou déclaré lors de son ouverture, cf ci-dessous extrait de l'aide vba, peut être utiliser une variable "string" stockant le chemin et nom complet du fichier, tout dépend de ce que tu compte faire :
Code:
Cet objet représente un classeur Microsoft Excel. L'objet Workbook est un membre de la collection Workbooks. La collection Workbooks contient tous les objets Workbook actuellement ouverts dans Microsoft Excel.

bonne soirée
@+
 
Re : VBA - Asigner un fichier à une variable Workbook sans ouvrir le fichier

Bonsoir,
Tout dépendra de l'utilisation que tu feras de cette variable, mais en tout état de cause, c'est d'un fichier dont il s'agira, non d'un classeur

Edit : salut Pierrot 🙂

A+
kjin
 
Re : VBA - Asigner un fichier à une variable Workbook sans ouvrir le fichier

Bonjour à tous,

Un exemple qui utilise l'automation avec la fonction GetObject

Code:
Sub aa()
Dim MonFichier As Workbook
Set MonFichier = GetObject("c:\test.xls")   ' Chemin à adapter

'--- pour voir (à flaguer par la suite)  ---
MonFichier.Windows(1).Visible = True
'-------------------------------------------

MsgBox MonFichier.Name
MonFichier.Close False
Set MonFichier = Nothing
End Sub

Cordialement.

PMO
Patrick Morange
 
Re : VBA - Asigner un fichier à une variable Workbook sans ouvrir le fichier

Merci beaucoup de vos réponses!
Je pense que je peux bien me servir de la propiété GetObject pour mon programme.

En fait, plus avant dans le code j'aurai besoin de copier certaines colonnes de ce fichier (MonFichier), est_ce que à ce point là je peux utiliser l'instruction

MonFichier.Windows(1).Visible = True

pour acceder au fichier, à la place de

MonFichier.Activate ? (ceci ne marche pas si le fichier n'est pas ouvert)
 
Re : VBA - Asigner un fichier à une variable Workbook sans ouvrir le fichier

Re,

A noter, avec "GetObject" ton fichier est ouvert mais masqué... en l'état, une activation du dit classeur n'a pas trop d'intèrêt... enfin me semble t-il...

bon après midi
@+
 
Re : VBA - Asigner un fichier à une variable Workbook sans ouvrir le fichier

Bonjour le forum, salut Pierrot,

Un exemple avec le code suivant où il vous faut adapter le chemin à votre usage

Code:
Sub bb()
Dim MonFichier As Workbook

'###
'--- Ouvre le classeur externe ---
Set MonFichier = GetObject("c:\test.xls")   ' Chemin à adapter
MonFichier.Windows(1).Visible = True
'--- Copie la plage A1:H50 de la feuille 1 du classeur externe ---
MonFichier.Sheets(1).Range("a1:h50").Copy

'###
'--- Le classeur appelant qui contient la macro ---
With ThisWorkbook
  .Activate
'--- Colle dans la feuille 2 cellule de destination B2 ---
  .Sheets(2).Select
  .Sheets(2).[b2].Select
  ActiveSheet.Paste
End With
'--- Vide le presse papiers ---
Application.CutCopyMode = False

'###
'--- Ferme le classeur externe et vide la mémoire ---
MonFichier.Close False
Set MonFichier = Nothing
End Sub

Cordialement.

PMO
Patrick Morange
 
- 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

Discussions similaires

Retour