Nommé un fichier avec une variable

fleet21

XLDnaute Junior
Bonjour à tous,

Je souhaite faire des manipulations avec un fichier nommé avec une variable et comme le nom de fichier change il faudrait une formule générique basée sur cette variable saisie (contenu de la variable = nom du fichier), le but est d'obtenir un code du type :

Set NOM = Workbooks("var") 'var étant le nom du fichier
J'ai beau essayer avec des &, des espaces et des guillements, rien n'y fait.

Afin de mieux cerner ma demande voici une de mes application :
Workbooks("Fichier 1").Sheets("Tableau").Copy After:=NOM.Sheets(2)
 

Patrice33740

XLDnaute Impliqué
Bonjour à tous,

Je souhaite faire des manipulations avec un fichier nommé avec une variable et comme le nom de fichier change il faudrait une formule générique basée sur cette variable saisie (contenu de la variable = nom du fichier), le but est d'obtenir un code du type :

Set NOM = Workbooks("var") 'var étant le nom du fichier
J'ai beau essayer avec des &, des espaces et des guillements, rien n'y fait.

Afin de mieux cerner ma demande voici une de mes application :
Workbooks("Fichier 1").Sheets("Tableau").Copy After:=NOM.Sheets(2)

Essaies :
VB:
Dim var As String
var = "Nom_du_fichier"
Set NOM = Workbooks(var)
Workbooks("Fichier 1").Sheets("Tableau").Copy After:=NOM.Sheets(2)
 

fleet21

XLDnaute Junior
Bonjour,

Ce code génére une erreur : Erreur de compilation Objet requis avec NOM de la ligne "Set NOM = Workbooks(var)" et en validant le message d'erreur une flèche jaune à gauche de la ligne de code Sub test(). La variable NOM est déclarée en nom String il doit manquer quelquechose mais je ne sais pas quoi.
 

Patrice33740

XLDnaute Impliqué
Re,

Sans connaître la totalité du code que tu utilises mais que tu n'as pas jugé utile de poster (nous sommes obligés de faire appel à nos boules de cristal, mais dans la période actuelle relativement sombre, elles restent obscures), je pense que l''erreur est très probablement due au fait que tu n'as pas déclaré (ou mal typé) la variable NOM !
Ajoutes en début de procédure :
VB:
Dim NOM as Workbook
 
Dernière édition:

fleet21

XLDnaute Junior
La déclaration de la variable NOM est dans le post n°1 => en string. Finalement à force d'essais, j'ai trouvé une solution viable :
Workbooks("Fichier 1").Sheets("Tableau").Copy After:=Workbooks(var).Sheets(3)
Avec var = nom de fichier.

Merci pour ton aide Patrice33740.
 

Patrice33740

XLDnaute Impliqué
La déclaration de la variable NOM est dans le post n°1 => en string ....
Pas du tout dans ton post n°1 tu as écris :
Set NOM = Workbooks("var") 'var étant le nom du fichier
Afin de mieux cerner ma demande voici une de mes application :
Workbooks("Fichier 1").Sheets("Tableau").Copy After:=NOM.Sheets(2)

C'est pourquoi, dans ma prmière réponse, je t'ai proposé une variable supplémentaire de type String nommée var.
Je résume donc mes deux réponses, pour que tes lignes du post 1 fonctionnent :
VB:
Dim NOM As Workbook
Dim var As String
var = "Nom_du_fichier"
Set NOM = Workbooks(var)
Workbooks("Fichier 1").Sheets("Tableau").Copy After:=NOM.Sheets(2)
 

Discussions similaires

Statistiques des forums

Discussions
312 198
Messages
2 086 114
Membres
103 121
dernier inscrit
SophieS