Variables dans plusieurs classeurs

Le
Marion
Bonjour,
Je débute avec les macros et j'ai besoin de votre aide.
Voici mon problème :
J'ai un dossier contenant 15 fichiers identiques, qui ont tous 6
feuilles.
Je souhaite créer un 16ème fichier appellé "Lancement" à partir duq=
uel
je lancerai la macro "actualisation".
Dans le fichier "Lancement", l'utilisateur entre le mois en cours en
D6, le mois précédent en D7 et son nom en H6. Ces données sont à
choisir dans des listes déroulantes.
L'utilisateur clique ensuite sur une image qui lance la macro
"actualisation".

Macro "actualisation" :
Cette macro doit ouvrir chacun des 15 fichiers du dossier puis
effectuer une action puis enregistrer et fermer les fichiers.
Jusqu'ici, j'ai réussi avec le code suivant :

Sub actualisation ( )
ChDir "Y:Sauvegardesxxxxxxxx"
Workbooks.Open Filename:= _
"Y:Sauvegardesxxxxxxxfichier1.XLS"
Application.Run "replacepl"
ActiveWorkbook.Save
ActiveWorkbook.Close
End sub

Maintenant, ce que doit faire la macro "replacepl" :

1) Elle doit, sur toutes les feuilles, faire un replace du mois
précédent par le mois en cours

J'avais fait cela :

Sheets("BA").Activate
Range("P79:P91").Select
SELECTION.replace What:="JUN", Replacement:="JUL", LookAt:=xlPart,
_
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False,
_
ReplaceFormat:=False
Sheets("CA").Activate
Range("P79:P91").Select
SELECTION.replace What:="JUN", Replacement:="JUL", LookAt:=xlPart,
_
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False,
_
ReplaceFormat:=False

Etc. sur toutes les feuilles (il doit y avoir plus court, mais je
débute, hein !)

Le pb : je voudrais que "JUN" et "JUL" soient des variables, qui
prendraient la valeur des cellules D7 et D6 de mon fichier
"Lancement".

2) Elle doit, sur les "feuil1" de chaque fichier, inscrire en Q8 le
nom entré en H6 dans le fichier "lancement".
Quelquechose comme ça :
Sheets("Feuil1").Activate
Range("Q8").Select
ActiveCell.la fameuse variable


Voila !

J'ai essayé de déclarer les variables, et puis en chechant sur ce
forum, j'ai vu qu'il y avait aussi des histoires de modules différents
et de déclaration de variables comme publiques etc c'est
passionnant mais je dois finir ce projet en peu de temps, alors je
vous appelle à l'aide !

Si vous aviez un moment pour m'aider, ce serait vraiment sympa.

Merci d'avance !

Marion
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Daniel
Le #4799741
Bonsoir.

Au choix :

1. Remplace :
Application.Run "replacepl"
par
replacepl [D6],[D7]
et sub replacepl()
par
sub replacepl(Mois1, Mois2)
Mois1 et Mois2 récupérant les valeurs des deux cellules.

2. Si les deux macros sont dans le même classeur, tu peux aussi décrire les
variables comme variables publiques en tête d'un module :
Public Mois1 as Integer
Public Mois2 as Integer
Tu les renseignes dans "actualisation" et tu récupères leur valeur dans
replacepl.

Cordialement.
Daniel
"Marion"
Bonjour,
Je débute avec les macros et j'ai besoin de votre aide.
Voici mon problème :
J'ai un dossier contenant 15 fichiers identiques, qui ont tous 6
feuilles.
Je souhaite créer un 16ème fichier appellé "Lancement" à partir duquel
je lancerai la macro "actualisation".
Dans le fichier "Lancement", l'utilisateur entre le mois en cours en
D6, le mois précédent en D7 et son nom en H6. Ces données sont à
choisir dans des listes déroulantes.
L'utilisateur clique ensuite sur une image qui lance la macro
"actualisation".

Macro "actualisation" :
Cette macro doit ouvrir chacun des 15 fichiers du dossier puis
effectuer une action puis enregistrer et fermer les fichiers.
Jusqu'ici, j'ai réussi avec le code suivant :

Sub actualisation ( )
ChDir "Y:Sauvegardesxxxxxxxx"
Workbooks.Open Filename:= _
"Y:Sauvegardesxxxxxxxfichier1.XLS"
Application.Run "replacepl"
ActiveWorkbook.Save
ActiveWorkbook.Close
End sub

Maintenant, ce que doit faire la macro "replacepl" :

1) Elle doit, sur toutes les feuilles, faire un replace du mois
précédent par le mois en cours

J'avais fait cela :

Sheets("BA").Activate
Range("P79:P91").Select
SELECTION.replace What:="JUN", Replacement:="JUL", LookAt:=xlPart,
_
SearchOrder:=xlByRows, MatchCase:úlse, SearchFormat:úlse,
_
ReplaceFormat:úlse
Sheets("CA").Activate
Range("P79:P91").Select
SELECTION.replace What:="JUN", Replacement:="JUL", LookAt:=xlPart,
_
SearchOrder:=xlByRows, MatchCase:úlse, SearchFormat:úlse,
_
ReplaceFormat:úlse

Etc. sur toutes les feuilles (il doit y avoir plus court, mais je
débute, hein !)

Le pb : je voudrais que "JUN" et "JUL" soient des variables, qui
prendraient la valeur des cellules D7 et D6 de mon fichier
"Lancement".

2) Elle doit, sur les "feuil1" de chaque fichier, inscrire en Q8 le
nom entré en H6 dans le fichier "lancement".
Quelquechose comme ça :
Sheets("Feuil1").Activate
Range("Q8").Select
ActiveCell.la fameuse variable


Voila !

J'ai essayé de déclarer les variables, et puis en chechant sur ce
forum, j'ai vu qu'il y avait aussi des histoires de modules différents
et de déclaration de variables comme publiques etc... c'est
passionnant mais je dois finir ce projet en peu de temps, alors je
vous appelle à l'aide !

Si vous aviez un moment pour m'aider, ce serait vraiment sympa.

Merci d'avance !

Marion
Publicité
Poster une réponse
Anonyme