Concatener nom d'un fichier appelé dans macro

sonia -  
 sonia -
Bonjour,

Je suis en train de faire une macro pour mon service et je bloque sur un truc :

On veut faire mensuellement des analyses à partir de 3 fichiers excel extraits automatiquement et dont les noms sont toujours de la forme Mmmyyyy XTXTFFRJF.xls, Mmmyyyy ADHRDHGJF.xls et Mmmyyyy MJLILGYRF.xls ( où mmyyyy est mois mois année année année année).

Je demande à l'utilisateur de rentrer Mmmyyyy. Puis en mode formule, je concatène l'adresse du répertoire de stockage (j'ai demandé à tout stocker dans même répertoire) avec Mmmyyyy et avec successivement XTXTFFRJF.xls, ADHRDHGJF.xls et MJLILGYRF.xls et je fais les hyperliens correspondants pour les ouvrir, copier toutes les sheets et les copier à la fin du fichier actuel. Ainsi, quand je change la valeur du Mmmyyyy, ça actualise les hyperliens et tout va bien.

Le problème, c'est quand j'ai voulu faire une macro sur le même principe. Quelque soit le mois, il donnait le même résultat pour l'exploitation des données (suite de la macro).
En entrant dans le code, j'ai vu que l'adresse des fichiers en hyperlien n'était pas mise à jour dans la macro. Quand j'ai fait la macro, j'ai fait avec M012013 et dans le code VBA c'est les trois fois les fichiers M012013- qui s'ouvrent.

Comment puis-je faire pour que dans la macro il concatène la valeur du Mmmyyyy pour prendre les trois fichiers du mois étudié ?

Cordialement,

Sonia
A voir également:

3 réponses

pilas31 Messages postés 1878 Statut Contributeur 647
 
Bonjour,

Avec une syntaxe du type :

Nom_de_fichier = "M" & Format(Date, "mmyyyy") & "XTXTFFRJF.xls"

A+
0
sonia
 
Ok, merci Pilas31.
Je vais essayer et je reviens vers vous si besoin...
A+,
0
sonia
 
Bonjour,

Voici comment j'ai réussi à m'en sortir :

Sub copypasteraw()
'
' open file "Mmmyyyy XTXTFFRJF.xls" and copy to "tool.xlsm"
'
'
Dim VariDate As String
VariDate = Sheet3.Cells(3, 2)

' Dans la case Sheet3.Cells(3, 2), l'utilisateur est invité à entrer la date au format Mmmyyyy .

Range("B13").Select

Workbooks.Open Filename:="\\ --nom de mon répertoire-- \" & VariDate & " XTXTFFRJF.xls"

[...]

et ça marche...
Comme je me suis 'un peu' énervée dessus, je voulais partager cette info.
L'aide de Pilas31 m'a aidé mais il ne faut pas oublier de déclarer la variable comme string...
0