Vba appeler un fichier dont le nom change

momar21 -  
 momar21 -
Bonjour,

je tente de faire une macro qui à partir d'un fichier X ouvre un fichier excel Y, copie des cellules, et reviens les coller dans le fichier excel X. La procédure de base marche, cependant Le nom du fichier X évolue chaque jour (il comporte la date...forme NOM_DATE.XLS) or la macro que j'ai crée (via l'enregistrement de macro) nomme le fichier X de façon "ferme" .

Comment nommer le fichier X pour qu'excel le trouve quand son nom change ?

J'ai testé des Windows("NOM_*.xls").Activate et autre Windows("NOM_????.xls").Activate

mais ca ne marche pas...

Avez vous une solution ?

merci d'avance



A voir également:

4 réponses

dct33 Messages postés 41 Date d'inscription   Statut Membre Dernière intervention   39
 
Bonjour,


ceci récupère le nom du classeur actif
----------------------------------------------

Nom_Classeur = ActiveWorkbook.Name

ceci permet d'appeler le classeur
-----------------------------------------

Windows(NomFichier).Activate

ceci charge un classeur
-------------------------------

Workbooks.Open Filename:= chemin



un exemple qui ressemble à votre besoin


Sub Ouvre_fichier_reseau()
'
Application.ScreenUpdating = False
On Error GoTo Err
Nom_Classeur = ActiveWorkbook.Name
NomFichier = "Toto.xls"
chemin = "C:\mon_répertoire\" & NomFichier
Dim lWorkbook As Workbook
Dim lFound As Boolean
' verification si le fichier reseau est déjà ouvert
lFound = False
For Each lWorkbook In Workbooks
If lWorkbook.Name = NomFichier Then
lFound = True
Exit For
End If
Next

If lFound = False Then
If Dir(chemin) <> "" Then

Workbooks.Open Filename:=chemin

Else
MsgBox ("Le fichier " & NomFichier & " n'existe pas ou defaut réseau")
End If

Windows(Nom_Classeur).Activate

End If
Application.ScreenUpdating = True

Exit Sub
Err:
MsgBox ("Le fichier " & NomFichier & " n'existe pas ou defaut réseau")

End Sub
1
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
Bonjour,

Si c'est la date du jour, avec un format jjmmaaaa :
Dim mDate As String 
Dim Fichier As String 

     mDate = Replace(Date,"/","") 
     Fichier = "NOM_" & mDate & ".xls"


Si c'est le date d'hier, avec format jjmmaaaa :
Dim mDate As String 
Dim Fichier As String 

     mDate = Replace(Date - 1,"/","") 
     Fichier = "NOM_" & mDate & ".xls"


;o)
«Ce que l'on conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément.»
Nicolas Boileau
0
momar21
 
Merci,

le format exact du fichier est:

NOM_AAAAMMJJ_HHMM.xls

Seul la partie NOM du fichier ne change jamais...

Et je n'ouvre qu'un seul fichier de ce type à la fois...
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
Voilà pour le format:
     mDate = Replace(Format(Now, "yyyymmdd hh:mm"), "/", "") 
     mDate = Replace(mDate, " ", "_")
     mDate = replace(mDate,":","")


;o)
0
momar21
 
merci dct33, j'ai reussi ce que je voulais faire avec ta commande pour nommer le fichier actif et le recuperer plus tard avec son "nouveau" nom !!

super
0