Fichier source change de nom

nyal3

XLDnaute Junior
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.
 

Paritec

XLDnaute Barbatruc
Re : Fichier source change de nom

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 :)
 

bérylion

XLDnaute Occasionnel
Re : Fichier source change de nom

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.

Salut

dans ce cas, pourquoi ne pas faire le chemin en sens inverse : exporter depuis le fichier qui change de nom ?
au pire, envoyer le nom du classeur dans celui qui reçoit les données...

on peut meme envisager de mettre une "marque" dans les proprietes custom du classeur pour le retrouver...
 

nyal3

XLDnaute Junior
Re : Fichier source change de nom

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 :)

Bonjour Paritec,le forum,
Je connais le nom du fichier ,en fait c'est le N° de semaine en cours.
 

mromain

XLDnaute Barbatruc
Re : Fichier source change de nom

Bonjour nyal, Paritec, Bérylion,


voici un essai :
VB:
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
a+
 
Dernière édition:

nyal3

XLDnaute Junior
Re : Fichier source change de nom

Bonsoir MRomain,Paritec,le forum

Je ne sais pas trop où placer votre code dans ma macro:confused:
Je ne veux pas abuser,mais si vous pouviez m'aider....

Code:
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
Merci.
 

Paritec

XLDnaute Barbatruc
Re : Fichier source change de nom

Bonjour Nyal3 MRomain,
tu ne pense pas que tu ferais mieux de nous envoyer ton fichier car là tu vas encore avoir un bout de réponse et après tu vas dire mais cela ne marche pas !!!
alors envois ton fichier et ta macro sera modifiée,
a+
papou :)
 

Habitude

XLDnaute Accro
Re : Fichier source change de nom

Code:
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
 

mromain

XLDnaute Barbatruc
Re : Fichier source change de nom

Bonjour nyal3, Paritec, Bérylion, Habitude,

Voici un "essai" de macro. J'entends par là que c'est un essai de traduction de la macro enregistrée en "langage plus propre". Mais ne pouvant pas tester ta macro d'origine, je ne me prononcerai pas sur le résultat.
VB:
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
PS : il faut modifier le nom de la feuille source des données (le nom de la feuille du classeur de la semaine d'où sont copiées les données) dans le code.

a+
 
Dernière édition:

nyal3

XLDnaute Junior
Re : Fichier source change de nom

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.
 

bérylion

XLDnaute Occasionnel
Re : Fichier source change de nom

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.


Salut

essaie de remplacer la ligne par celle-la :

Code:
pathClasseurSemaine = "F:\Compteurs\compteurs_Semaine_" & format(now,"ww") & ".xls"

[un bémol toutefois, excel compte les semaines "à l'américaine" - j'avais pondu une formule pour avoir le N° de sem à l'européenne ; faudrait que j'aille en spéléo pour la retrouver...]

;)
 

nyal3

XLDnaute Junior
Re : Fichier source change de nom

Bonjour,MRomain,le forum,

La modification pour le N° de semaine en cours fonctionne avec une seamaine de décalage(27 au lieu de 26),je pense que c'est le calcul USA.

Maintenant,j'ai une erreur "Variable objet ou variable de bloc With non définie"
Le débogeur s'arrête sur"classeurSemaine = Application.Workbooks.Open(pathClasseurSemaine, , True)",en revanche le classeur s'ouvre bien en lecture seule.
Merci pour le détail de la macro:)
@+ nyal
 

Discussions similaires

Réponses
8
Affichages
288
Réponses
46
Affichages
1 K
Réponses
16
Affichages
380

Statistiques des forums

Discussions
312 503
Messages
2 089 059
Membres
104 014
dernier inscrit
Aurélie MONTEIL