Déclarer un fichier Excel en variable

Bonjours.

Je débute en VBA et en code, notamment grâce à se site et ses cours gratuits. Merci.

Je bloque pourtant sur un problême tout simple :

Je souhaite attribuer à deux variable des fichier exel dans une macro. Voici pour vous donner une idée :

Dim Remise As Workbooks

Dim Engin As Workbooks

Set Engin = GetObject("J:\SP\VSAV01.xlsx")

Set Remise = Workbooks("\Etat_des_vehicules_macro.xlsm")

J'ai fait pas mal d'essai (avec GetObject ou Workbook notamment ) avec tout les exemple de code trouvé, mais rien n'y fait, je reste sur l'erreur : "l'indice n'appartient pas à la sélection" dès les premières lignes.

Les fichier sont dans le même dossier et la macro est se lance à partir de l'un des deux ("Etat_des_vehicules_macro.xlsm')

Une idée de pourquoi ?

J'utilise Exel 2007

Bonjour,

si les fichiers sont déjà ouvert,

Set Engin = Workbooks("VSAV01.xlsx")
Set Remise = Workbooks("Etat_des_vehicules_macro.xlsm")

Bonsoir Vince, bonsoir le forum,

La collection Workbooks représente tous les classeurs ouverts. Donc tu ne peux définir les variables Workbook que si le classeur est déjà ouvert. En revanche tu peux faire :

Dim Engin As Workbook
Set Engin = Application.Workbooks.Open("J:\SP\VSAV01.xlsx") 

Cela à l'avantage d'ouvrir le classeur et de le stocker dans la variable objet Engin. À partir de là, pour y faire référence, Engin est suffisant. Pour sélectionner le troisième onglet de ce classeur tu écriras :

Engin.Worksheets(3).Select

Bonsoir,

Tu déclares tes variables comme Workbooks

soit collection de classeurs ouvert dans l'application...

Et si tu enlèves le S pour ramener ta variable à un objet, l'objet doit être un classeur défini par son nom, éventuellement chemin inclus, soit ouvert dans l'application, soit que tu ouvres dans l'application.

Cordialement.

edit : salut à tous ! j'arrive bon dernier mais les avis sont convergents !

Merci à vous tous.

Cela fonctionne pour le fichier VSAV01, l'erreur que j'ai commise venait du fait que le classeur était fermé.

Par contre une erreur "l'indice n'appartient pas à la selection" persiste sur le fichier "Etat_des_vehicules_macro.xlsm" où l'on active la macro et donc déjà ouvert.

Voici ou j'en suis :

Dim Remise As Workbook

Dim Engin As Workbook

Set Engin = Application.Workbooks.Open("J:\SP\VSAV01.xlsx")

Set Remise = Workbooks("J:\SP\Etat_des_vehicules_macro.xlsm")

Supprime le chemin s'il est ouvert.

MFerrand a écrit :

Supprime le chemin s'il est ouvert.

Merci merci !

Tout fonctionne

Rechercher des sujets similaires à "declarer fichier variable"