Récupérer nom d'un fichier en VBA

  • Initiateur de la discussion Initiateur de la discussion pepe22
  • 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 !

pepe22

XLDnaute Nouveau
Bonjour tout le monde,
J'aurais besoin de votre aide pour du vba.

Je me trouve sur un fichier "aaaa.xls", je lance une macro qui me permet de créer un autre fichier et d'effectuer en automatique une recopie de certaines feuilles avec ou sans formules.
Voici le début de mon code:

Dim NomFichier1 As String
Dim NomFichier2 As String
Dim NomFichier3 As String


NomFichier1 = ActiveWorkbook.Name

Workbooks.Add
Range("A1").Select
NomFichier2 = ActiveWorkbook.Name

Windows(NomFichier1).Activate
Sheets("Synthèse").Select
Sheets("Synthèse").Copy After:=Workbooks(NomFichier2).Sheets(3)

Windows(NomFichier1).Activate
Sheets("Renta").Select
Sheets("Renta").Copy After:=Workbooks(NomFichier2).Sheets(4)

etc...

Le probléme est que systématiquement je ne récupére que le nom de mon fichier de macro personnel "personal.xlsb" et non celui du classeur que je viens de créer ou celui du classeur à partir duquel j'ai lancé ma macro.

Je ne sais pas si je suis bien clair, en tout cas je vous remercie par avance de votre aide.

PS: j'ai également essayé avec "thisWorkbook" à la place de "ActiveWorbook"
 
Re : Récupérer nom d'un fichier en VBA

Bonjour,

pas tout compris moi... ta macro se trouve où ? dans ton classeur de macros personnelles ??? celui-ci devrait être masqué, et de ce fait "NomFichier1 = ActiveWorkbook.Name" ne devrait jamais renvoyer ton "perso.xlsb"...

bon après midi
@+
 
Re : Récupérer nom d'un fichier en VBA

Bonjour pepe22,

Normal nous nous sommes tous plus ou moins fait avoir sur ce sujet 🙂
Comme ton nouveau classeur n'est pas enregistré, tu ne peux pas récupérer son nom
Il faut d'abord l'enregistrer

A+
 
Re : Récupérer nom d'un fichier en VBA

Bonjour pepe22, Pierrot 🙂, BrunoM45 🙂,
Si la macro est bien dans le classeur "source" on peux essayer ceci:
VB:
Sub Test()
With ThisWorkbook
    .Sheets(Array("Synthèse", "Renta")).Copy
End With
End Sub
Cordialement
 
Re : Récupérer nom d'un fichier en VBA

Re, bonjour Bruno🙂, Fg🙂

Normal nous nous sommes tous plus ou moins fait avoir sur ce sujet
Comme ton nouveau classeur n'est pas enregistré, tu ne peux pas récupérer son nom
Il faut d'abord l'enregistrer

Aarf, chez moi sous 2003, le code ci-dessous me renvoie bien le nom du classeur nouvellement créé... sans l'extension bien sûr...

Code:
Workbooks.Add
MsgBox ActiveWorkbook.Name
 
Re : Récupérer nom d'un fichier en VBA

Re à tous,
Pour développer ma proposition et participer au problème du nom des classeurs:
En Vba ceci fonctionne (enfin, sous 2003):
VB:
Sub Test()
With ThisWorkbook
    .Sheets(Array("Synthèse", "Renta")).Copy
    'On peux continuer à travailler sur le classeur source
End With
With ActiveWorkbook
    'on est sur le classeur créé
End With
End Sub
Pour le nom du classeur actif, c'est en formule que l'on doit impérativement enregistrer le classeur pour récupérer son nom.
Cordialement
 
Re : Récupérer nom d'un fichier en VBA

Re
@ Pierrot,
C'est vrai, ma phrase n'était pas très claire ...😱
Si on prend la formule suivante, qui renvoi le nom du classeur actif :
Code:
=STXT(CELLULE("filename");CHERCHE("[";CELLULE("filename"))+1; CHERCHE("]";CELLULE("filename"))-CHERCHE("[";CELLULE("filename"))-1)
Tant que le classeur n'est pas enregistré, on obtiens une erreur.
Maintenant, il est vrai que mes connaissances en formules restent très limitées et qu'il y a certainement mieux pour récupérer l'information 😀.
Cordialement
 
Re : Récupérer nom d'un fichier en VBA

quelque chose doit m'échapper....
Non, non....
Ce que je dis c'est que par VBA on trouve le nom du classeur actif, qu'il soit enregistré ou pas, par ActiveWorkBook, mais que par formule, on doit enregistrer obligatoirement le classeur pour trouver son nom.
Crée un nouveau classeur et colle la formule que j'ai mise dans mon précédent post dans un cellule, tant qu'il n'est pas enregistré (le classeur) tu as une erreur.
Cordialement
 
Re : Récupérer nom d'un fichier en VBA

Re,

Non, non....
Ce que je dis c'est que par VBA on trouve le nom du classeur actif, qu'il soit enregistré ou pas, par ActiveWorkBook
Aarf, merci fg, je commencais à penser qu'il y avait un truc que je ne comprenais pas... fort possible, dès fois on part sur une idée et impossible d'en sortir... bon question formule, je ne saurais pas te dire.... comme tu as pu le remarquer, pas trop mon truc....

bonne soirée
@+
 
- 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
1
Affichages
277
  • Question Question
Microsoft 365 Code VBA
Réponses
10
Affichages
953
Réponses
3
Affichages
820
Retour