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

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"
 

Pierrot93

XLDnaute Barbatruc
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
@+
 
C

Compte Supprimé 979

Guest
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+
 

Efgé

XLDnaute Barbatruc
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
 

Pierrot93

XLDnaute Barbatruc
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
 

Efgé

XLDnaute Barbatruc
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
 

Efgé

XLDnaute Barbatruc
Re : Récupérer nom d'un fichier en VBA

Re
@ Pierrot,
C'est vrai, ma phrase n'était pas très claire ...:eek:
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 :D.
Cordialement
 

Efgé

XLDnaute Barbatruc
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
 

Pierrot93

XLDnaute Barbatruc
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
@+
 

Statistiques des forums

Discussions
312 497
Messages
2 088 992
Membres
104 000
dernier inscrit
dinelcia