faire suivre une macro si je renome le fichier

  • Initiateur de la discussion Initiateur de la discussion olive323
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

olive323

XLDnaute Occasionnel
Bonjour a tous,

Est il possible que la macro ci dessous fonction même si je renome mon fichier?
Sens avoir à modifier manuellement les sources dans la macro.


Exemple le fichier se nomme "im-2n-sse00004-04-base 2011"
si je veux le nommer "im-2n-sse00004-04-base 2012"

Cordialement





Salut Olive,

Tu peux utiliser des variables pour éviter d'avoir à tout retaper:


Code :
Dim wbkSource as Workbook
Dim wbkDestination as Workbook
Dim shtSource as Worksheet
Dim shtDestination as Worksheet
Dim i as Long, j as Long

Set wbkSource = Workbooks("im-2n-sse00004-04-base 2011")
Set shtSource = wbkSource.Worksheets("Noms")
Set wbkDestination = Workbooks("Bilan sse alizay")
set shtDestination = wbkDestination.Worksheets("Page 7")

With shtSource
shtDestination.Range("o8:15")=.Range("j25:J32") '<-plage du range à corriger
j=0
For i=1 to 3
shtDestination.cells(5+j,20)=.Range("J" & 36+i)
j=j+3
next
End With
(....)
J'ai pas testé mais je crois bien que cela devrait le faire.
A noter, que tu ne précises pas si tu fais ce type de copier/coller sur plus de plages. Dans ce cas il faudra que tu adaptes ton code.

Bonne soirée.
 
Re : faire suivre une macro si je renome le fichier

Bonjour

cela semble difficile sauf dans le cas ou ton nom de fichier possède une certaine logique

par exemple nom+date et que le changement se fasse à date précise (pour automatiser)

et encore, si tu as oublié de créer ton fichier, tu auras une erreur, donc il faut que ta macro vérifie si le fichier cherché existe....

sinon une possibilité est de demander quel fichier destination l'utilisateur veut, mais on reste en semi-manuel...ou semi-automatique 😕
 
Re : faire suivre une macro si je renome le fichier

Bonjour Olive,

si la macro est dans le classeur en question "im-2n-sse00004-04-base 2011", tu peux utiliser l'objet "ThisWorkbook", tu remplaces :

Code:
Set wbkSource = Workbooks("im-2n-sse00004-04-base 2011")

par :
Code:
Set wbkSource = ThisWorkbook

ou bien partout où est utilisé "wbkSource" tu remplaces par "ThisWorkbook"

bonne journée
@+

Edition : bonjour Eric
 
Re : faire suivre une macro si je renome le fichier

Bonjour Olive323 🙂,
Est il possible que la macro ci dessous fonction même si je renome mon fichier?
Sens avoir à modifier manuellement les sources dans la macro.
Oui et non 😛...
Tu peux avoir une fenêtre de sélection du fichier au départ, mais ce n'est intérressant que si ton fichier change tous les jours 🙄...
Tu peux, mais là c'est tordu, le faire modifier par une autre macro 😛...
Mais le plus simple, c'est de le déclarer en constante au début de ta macro
Code:
Const MonFichier As String = "im-2n-sse00004-04-base 2011"
comme cela, tu y fait appel ensuite partout où tu veux dans ta macro
Code:
Set wbkSource = Workbooks(MonFichier)
et même si tu es obligé de le changer "manuellement", cela va vite puisque tu l'as directement en haut de ton code et que ça change immédiatement tous les endroits où il est utilisé 😉.
Bonne journée 😎
Ajout : Salut Pierrot, Eric 🙂
 
Re : faire suivre une macro si je renome le fichier

Re, bonjour JNP🙂

tu ne nous dis pas dans quel classeur se trouve ton code... autre possibilité, si la fin du fichier (l'année) peut être déterminée en fonction de la date système...

Code:
Set wbkSource = Workbooks("im-2n-sse00004-04-base " & Year(Date))
 
Re : faire suivre une macro si je renome le fichier

Bonjour JPN

J'ai essayé comme ca mais ca marche pas


Const MonFichier As String = "im-2n-sse00004-04-base 2012"
Dim wbkSource As Workbook
Dim wbkDestination As Workbook
Dim shtSource As Worksheet
Dim shtDestination As Worksheet

Set wbkSource = Workbooks(MonFichier)
Set shtSource = wbkSource.Worksheets("Noms")
Set wbkDestination = Workbooks("Bilan sse")
Set shtDestination = wbkDestination.Worksheets("Page 2")
'Historique de la vie SSE du site
With shtSource
shtDestination.Range("ab39") = .Range("j33")
shtDestination.Range("ab40") = .Range("h33")
shtDestination.Range("ab41") = .Range("i33")
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
879
R
Réponses
2
Affichages
662
R
Réponses
3
Affichages
1 K
A
Réponses
2
Affichages
1 K
AlexAGEMS
A
Retour