bonjour
J'ai une macro qui m'importe des données depuis un fichier xls.le problème c'est que ce fichier change de nom toute les semaines.
Je voulais savoir si il y a un moyen pour ne pas changer le chemin d'accés à ce fichier à chaque fois?
Merci.
Bonjour nyal3, le forum
d'après ce que tu dis non c'est pas possible mais par contre si tu connais l'évolution des noms de fichiers c'est possible.
si admettons ton fichier a toujours l xxxxxx et une date qui change par exemple
a te relire
a+
papou
Sub test()
'déclaration des variables
Dim nomFichier As String, classeur As Workbook
'créer le nom de fichier correspondant à la semaine en cours
nomFichier = "compteurs_Semaine_" & WorksheetFunction.WeekNum(Now) & ".xls"
'ouvrir le classeur
Set classeur = Application.Workbooks.Open(nomFichier)
'...
'...
'...
End Sub
Sub Atelier_Futs()
'
' Compteurs_Semaine Macro
' Macro enregistrée le 05/03/2010 par LIONEL
'
'
Sheets("Compteurs").Select
Workbooks.Open Filename:= _
"F:\Compteurs\compteurs_Semaine_24.xls"
Range("A3:AN491").Select
Selection.Copy
Windows("Compteurs_AM-ATF-STERILOS.xls").Activate
ActiveWindow.WindowState = xlNormal
ActiveSheet.Paste
Range("A3").Select
Selection.AutoFilter Field:=11, Criteria1:="=GROUPE 52", Operator:=xlOr, _
Criteria2:="=GROUPE 56"
Sheets("ATF").Select
Range("L6").Select
ActiveWindow.WindowState = xlMaximized
'ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
'ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Windows("compteurs_Semaine_24.xls").Activate
Range("A3").Select
ActiveWindow.Close
End Sub
Sub Atelier_Futs()
'
' Compteurs_Semaine Macro
' Macro enregistrée le 05/03/2010 par LIONEL
'
'
Sheets("Compteurs").Select
Workbooks.Open Filename:= _
[COLOR="Red"]"compteurs_Semaine_" & WorksheetFunction.WeekNum(Now) & ".xls"[/COLOR]
Range("A3:AN491").Select
Selection.Copy
Windows("Compteurs_AM-ATF-STERILOS.xls").Activate
ActiveWindow.WindowState = xlNormal
ActiveSheet.Paste
Range("A3").Select
Selection.AutoFilter Field:=11, Criteria1:="=GROUPE 52", Operator:=xlOr, _
Criteria2:="=GROUPE 56"
Sheets("ATF").Select
Range("L6").Select
ActiveWindow.WindowState = xlMaximized
'ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
'ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Windows("compteurs_Semaine_24.xls").Activate
Range("A3").Select
ActiveWindow.Close
End Sub
Sub Atelier_Futs()
'déclaration des variables
Dim pathClasseurSemaine As String, classeurSemaine As Workbook
'définir le nom du classeur de la semaine courante (classeur source)
pathClasseurSemaine = "F:\Compteurs\compteurs_Semaine_" & WorksheetFunction.WeekNum(Now) & ".xls"
'ouvrir le classeur en lecture seule
classeurSemaine = Application.Workbooks.Open(pathClasseurSemaine, , True)
'copier la zone "A3:AN491" de la feuille "XXXXXX" du classeur source dans la feuille "Compteurs" de ce classeur
classeurSemaine.Sheets("XXXXXX").Range("A3:AN491").Copy ThisWorkbook.Sheets("Compteurs").Range("A3")
''si il faut fermer le classeur source, enlever le commentaire sur la ligne suivante
'classeurSemaine.Close false
'appliquer le filtre sur la zone "A3:AN491" de la feuille "Compteurs" de ce classeur
ThisWorkbook.Sheets("Compteurs").Range("A3:AN491").AutoFilter Field:=11, Criteria1:="=GROUPE 52", Operator:=xlOr, Criteria2:="=GROUPE 56"
''si il faut imprimer la feuille "ATF" de ce classeur, enlever le commentaire sur la ligne suivante
'ThisWorkbook.PrintOut Copies:=1, Collate:=True
''si il faut ensuite fermer ce classeur, enlever le commentaire sur la ligne suivante
''sans enregistrer les modification
'ThisWorkbook.Close False
''en enregistrant les modifications
'ThisWorkbook.Close True
End Sub
Bonjour,
MRomain,j'ai modifié ma macro avec votre code.
J'ai un message au lancement de cette dernière:
"propriété ou methode non géré par cet objet"
Le debogueur s'arrete sur:
pathClasseurSemaine = "F:\Compteurs\compteurs_Semaine_" & WorksheetFunction.WeekNum(Now) & ".xls"
Merci,et désolé pour mon manque de connaisances en VBA.
pathClasseurSemaine = "F:\Compteurs\compteurs_Semaine_" & format(now,"ww") & ".xls"