Bonjour,
Je cherche à faire une macro qui recupere le nom du classeur et qui l'utilise ensuite pour remplacer un parametre (autre nom) dans tout le code vba.
Pensez vous que ce soit possible?
Merci de votre aide,
Cdlt
Bonjour,
Je cherche à faire une macro qui recupere le nom du classeur et qui l'utilise ensuite pour remplacer un parametre (autre nom) dans tout le code vba.
Pensez vous que ce soit possible?
Merci de votre aide,
Cdlt
Bonjour,
Pour remplacer un nom connu (ici, "ancien.xls") :
Dans les options du centre de gestion de la confidentialité, tu dois cocher "Accès approuvé au modèle d'objet du projet VBA".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Sub ModifCode() With ThisWorkbook.VBProject.VBComponents("Module2").CodeModule For i = 1 To .CountOfLines txt = .Lines(i, 1) If txt Like "*ancien.xls*" Then txt = Replace(txt, "ancien.xls", "nouveau.xls") End If Next i End With End Sub
Oui c'est possible.
Dans un premier temps, pour récupérer le nom du classeur, la commande est :
Ensuite, si tu veux utiliser le nom de celui-ci pour d'autres macros, je te conseille alors de créer ta requête avec un champ d'entrée, dans lequel tu pourra mettre ce nom. Par exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part ActiveWorkbook.name
A toi de l'adapter à ce que tu veux faire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 Public NomC as string Sub Recupnom() NomC = ActiveWorkbook.name End Sub ... Sub Macro2(NomClasseur as string) 'Code à faire sur le classeur End sub ... Sub MacroPrincipale() Call macro2(NomC) End Sub
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager