Vba appeler un fichier dont le nom change
momar21
-
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
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:
- Vba appeler un fichier dont le nom change
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
- Fichier .dat - Guide
4 réponses
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
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
Bonjour,
Si c'est la date du jour, avec un format jjmmaaaa :
Si c'est le date d'hier, avec format jjmmaaaa :
;o)
«Ce que l'on conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément.»
Nicolas Boileau
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