Concatener nom d'un fichier appelé dans macro
sonia
-
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
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:
- Concatener nom d'un fichier appelé dans macro
- Fichier bin - Guide
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier rar - Guide
- Fichier .dat - Guide
3 réponses
Bonjour,
Avec une syntaxe du type :
Nom_de_fichier = "M" & Format(Date, "mmyyyy") & "XTXTFFRJF.xls"
A+
Avec une syntaxe du type :
Nom_de_fichier = "M" & Format(Date, "mmyyyy") & "XTXTFFRJF.xls"
A+
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...
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...