Macro avec trois nom de fichiers variables

Fermé
vv89 Messages postés 3 Date d'inscription lundi 25 mars 2013 Statut Membre Dernière intervention 24 avril 2013 - 25 mars 2013 à 21:39
vv89 Messages postés 3 Date d'inscription lundi 25 mars 2013 Statut Membre Dernière intervention 24 avril 2013 - 24 avril 2013 à 11:09
Bonjour tout le monde,

Je vient de terminer une grande macro mais étant débutante en Excel VBA, je viens de rencontrer le problème des variables et je pense qu'il ai une solution sans devoir tout refaire ma macro, J'ai déjà essayé en utilisant des réponses de ce site mais sans succès, j'espère que quelqu'un puisse m'aider! :)

Explications:

J'ai trois fichiers intitulé:
- Part February 2013 (février)
- Part January 2013 (janvier)
- Apple 2013 (contient des infos variés)

J'ai écrit ma macro ayant ces trois fichiers déja ouvert (cela ne pose pas problème)

Mon fichier de base est "Part February 2013" , le plus récent que je mets à jour.

Depuis le fichier "Part January 2013", je copie des informations pour les reporter dans "Part February 2013"

(Avec le fichier "Apple 2013", même principe, je reporte des informations de fichier en fichier)

PROBLEMES:

-Le nom des fichiers dans ma macro sont FIXES, alors que le mois prochain, je travaillerais avec un fichier MARS (Part March 2013) et je reporterais les infos du mois précédent, dans mon cas, février (Part Febrary 2013)
-Le même souci se poseras en année 2014 ( Apple 2013 -> Apple 2014, Part January/February 2013 etc. -> January/February 2014)

Les noms fixes de ces trois fichiers sont récurrents dans ma macro puisque je passe de fichier en fichier: EXEMPLES:

- Ex 1) Depuis mon activeworkbook (dans ce cas Part February 2013), je fais une recherche dans le ficher apple:

ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC[-19],'[2013 apple.xlsx]code defaut'!C1:C10,10,FALSE)"

- Ex 2) Exemple type de passer de fichier en fichier à travers ma macro

Sheets("infos").Select
Windows("apple 2013.xlsx").Activate
Sheets("pourinfo").Select
Columns("A:G").Select
Selection.Copy
Windows("Part February 2013.xlsx").Activate
Range("A1").Select


***Je voudrais essayer de faire trois variables, tels que:

moisencours (correspondant au fichier sur lequel je travaille, ici Part February 2013)
moisprécedent (correspondaut ici au Part January 2013)
apple


Difficile à formuler ma question, mais je voudrais pouvoir remplacer dans ma macro les noms fixes par moisencours, ou moisprecedent ou apple:

Ex 1) ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC[-19],'[APPLE]code defaut'!C1:C10,10,FALSE)" (apple correspondant au fichier apple 2013, pour cette année)

Ex 2)
Sheets("infos").Select
Windows("APPLE").Activate (apple = fichier apple 2013)
Sheets("pourinfo").Select
Columns("A:G").Select
Selection.Copy
Windows("MOISENCOURS").Activate (-> moisencours correspondant à Part February 2013)
Range("A1").Select

Voila, j'espère avoir été clair, quelq'un pour m'aider ? :) Merci beaucoup d'avance

1 réponse

eriiic Messages postés 24601 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 25 novembre 2024 7 243
25 mars 2013 à 23:38
Bonjour,

le mieux est de les ouvrir à partir de la macro.
Ex :
Sub exemple()
    Dim wbApple As Workbook, wbMoisEnCours As Workbook, wbMoisPrec As Workbook

    Workbooks.Open Filename:="D:\tmp\apple 2013.xls"
    Set wbApple = ActiveWorkbook
    Workbooks.Open Filename:="D:\tmp\Part February 2013.xls"
    Set wbMoisEnCours = ActiveWorkbook
    Workbooks.Open Filename:="D:\tmp\Part January 2013.xls"
    Set wbMoisPrec = ActiveWorkbook
    
'    Windows("APPLE").Activate    ' (apple = fichier apple 2013)
'    Sheets("pourinfo").Select
'    Columns("A:G").Select
'    Selection.Copy
'    Windows("MOISENCOURS").Activate    '(-> moisencours correspondant à Part February 2013)
'    Range("A1").Select
    '
    ' devient :
    wbApple.Sheets("pourinfo").Columns("A:G").Copy
    wbMoisEnCours.Activate
End Sub 


Tu peux aussi utiliser with :
With wbApple.Sheets("pourinfo")
.[A1]="ok" 'ne pas oublier le . devant la référence, il répète ce qui est après le With
'etc
end with

eric
0
vv89 Messages postés 3 Date d'inscription lundi 25 mars 2013 Statut Membre Dernière intervention 24 avril 2013
24 avril 2013 à 11:09
J'ai pas eu le temps de vous répondre avant Eriiic, mais merci beaucoup en tout cas ! Je vais finalement prendre le tems de l'essayer :)
Très sympa
0