Macro avec trois nom de fichiers variables
vv89
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
vv89 Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
vv89 Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
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
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
A voir également:
- Macro avec trois nom de fichiers variables
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Explorateur de fichiers - Guide
- Renommer des fichiers en masse - Guide
- Fichiers epub - Guide
- Trouver un nom avec une adresse ✓ - Forum Loisirs / Divertissements
1 réponse
Bonjour,
le mieux est de les ouvrir à partir de la macro.
Ex :
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
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
Très sympa