Concatener nom d'un fichier appelé dans macro

Fermé
sonia - 19 mars 2013 à 20:50
 sonia - 4 avril 2013 à 19:14
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 1825 Date d'inscription vendredi 5 septembre 2008 Statut Contributeur Dernière intervention 24 avril 2020 643
20 mars 2013 à 12:20
Bonjour,

Avec une syntaxe du type :

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

A+
0
Ok, merci Pilas31.
Je vais essayer et je reviens vers vous si besoin...
A+,
0
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