Macro se référencant à plusieurs fichiers

Résolu/Fermé
Dubi21 Messages postés 48 Date d'inscription samedi 25 janvier 2014 Statut Membre Dernière intervention 25 octobre 2016 - 8 avril 2014 à 10:43
Dubi21 Messages postés 48 Date d'inscription samedi 25 janvier 2014 Statut Membre Dernière intervention 25 octobre 2016 - 9 avril 2014 à 14:01
Bonjour,

Je vais essayer d'être clair, je rempli un fichier excel tous les mois. Tous les mois je dois transférer (de mon fichier) mes données sur un fichier qui se trouve sur un serveur commun et qui change de nom tous les mois (ex : 01 2014 ; 02 2014 ; 03 2014 etc....)
Pour faire cette macro, mes deux fichiers sont ouverts. J'ai la macro suivante :

Sheets("419830").Select
Windows("03 2014.xls") .Activate
Windows("MATRICE CONTROLE SCF.xls").Activate
Sheets("419110").Select
Range("D4:E4").Select
Selection.Copy

Etc....

Je voudrais qu'il applique cette macro au fichiers ("03 2014.xls") ou ("04 2014.xls")ou("05 2014.xls"......etc) Que je rentre le nom des fichiers une bonne fois pour toute et que ma macro fonctionne toute l'année.

Est-ce possible ?

Merci à vous
A voir également:

1 réponse

via55 Messages postés 14432 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 21 juin 2024 2 713
8 avril 2014 à 13:54
Bonjour

Si tu veux récupérer le mois courant et l'année courante et recomposer le nom tu peux procéder ainsi en début de macro :

m= Month(Now)
If m< 10 Then m= "0" & m
nom= m & " " & Year(Now) & ".xls"
Windows(nom) .Activate

Cdlmnt
0
Dubi21 Messages postés 48 Date d'inscription samedi 25 janvier 2014 Statut Membre Dernière intervention 25 octobre 2016
9 avril 2014 à 09:10
Merci pour ta réponse, j'essaye ça et te dis si cela convient

cdt
0
Dubi21 Messages postés 48 Date d'inscription samedi 25 janvier 2014 Statut Membre Dernière intervention 25 octobre 2016
9 avril 2014 à 11:51
Je ne sais pas si j'ai bien utilisé ton lien mais ça ne fonctionne pas si j'ouvre le fichier nommé 02 2014 (un peu normal car la macro fait référence au fichier du mois suivant). Cela fonctionne avec le 03 2014 (en ex : ci-dessous) mais est-ce qu'il faut que je supprime (ou plutôt remplace par un nom plus « général ») tous les noms qui font références au fichier qui changera nom tous les mois ?

m = Month(Now)
If m < 10 Then m = "0" & m
nom = m & " " & Year(Now) & ".xls"
Windows("03 2014").Activate

'
Windows("03 2014.xls").Activate <--?
Windows("MATRICE CONTROLE SCF.xls").Activate
Sheets("419110").Select
Range("D4:E4").Select
Selection.Copy
Windows("03 2014.xls").Activate <--?
Range("D21").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows("MATRICE CONTROLE SCF.xls").Activate
Range("D5:E6").Select
Application.CutCopyMode = False
Selection.Copy
Windows("03 2014.xls").Activate ..... <-- ?


Je sais pas si je suis très clair dans mes explications...

Merci pour ton aide
0
via55 Messages postés 14432 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 21 juin 2024 2 713
9 avril 2014 à 13:17
Les 3 premieres lignes de la macro recomposent un nom de fichier à partir du mois en cours et de l'année en cours ainsi quand on est en mars 2014 la variable nom prend la valeur "03 2014.xls"; il faut donc remplacer ensuite chaque Windows("03 2014").Activate de la macro par Windows(nom).Activate
En avril le nom du fichier deviendra "04 2014.xls" etc

Par contre si tu veux choisir le mois indépendamment du mois en cours (par exemple pour transférer en avril les donnée de mars), il faut faire une fenêtre de choix en remplaçant la 1ere ligne m = Month(Now) par m=inputbox("Entrer le n° du mois à transférer")

Cdlmnt
0
Dubi21 Messages postés 48 Date d'inscription samedi 25 janvier 2014 Statut Membre Dernière intervention 25 octobre 2016
9 avril 2014 à 14:01
Génial !
Tout fonctionne, merci beaucoup !!! Je découvre les macros petit à petit et le gain de temps dans mon travail, c'est affolent :-)
Merci encore
Cdl
0