Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Maco pour récupérer le nom du fichier

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

rjcb

XLDnaute Occasionnel
Bonjour à tous!

Je recherche une macro ou commande qui permettrait de me récupérer le nom du fichier sur lequel je travail.

Je m'explique:

Sur ma feuille excel j'ai un bouton sauvegarder sous.
L'utilisateur met le nom de fichier qu'il souhaite.
Après j'ai un bouton envoyer par mail et là il faudrait que cette macro reprenne le nom du fichier que l'utilisateur a spécifier avant.

Merci
 
Re : Maco pour récupérer le nom du fichier

Bonjour rjcb

essaye peut être avec "ActiveWorkbook.Name" si c'est le classeur actifi ou bien "ThisWorkbook.Name" si c'est le classeur contenant la macro.

mets peut être tonfichier sans données confidentielles si pas suffisant.

bonne jouirnée
@+
 
Re : Maco pour récupérer le nom du fichier

Ok merci,

Cette commande doit marcher mais je viens de me rendre compte que ma fonction la ne marche pas:

Sub Backup()
Application.GetSaveAsFilename "c:\tonton", fileFilter:="Excel Files (*.csv), *.csv"
End Sub

cela ouvre bien la boite de dialogue, je fais enregistrer mais cela enregistre rien.
Les fichiers exsitent bien (tonton)

merci
 
Re : Maco pour récupérer le nom du fichier

Bon je suis perdu un peu:

Ce que je voudrais faire:

Une copie de la feuille 1 sans les macros.
Donc lors de l'appui sur la touche sauvegarde, la boite de dialogue enregistrer sous s'ouvre et propose le nom essai.csv.

Par contre le ,1 c'est pour le xls, mais quel est le chiffre pour le .csv et pour tout type de fichier.

Une fois cliquer sur le bouton enregistrer cela doit créer une copie de la feuille 1 sans les macros avec pour nom essai.csv.

Enfin j'essai de récupérer le nom du fichier enregister, (ici essai.csv) avec :

file_name = Application.GetSaveAsFilename

Mais comment après renvoyer cette valeur dans une autre fonction.

public Sub Backup() as string ?



Private Sub CommandButton1_Click()
Backup
End Sub

Sub Backup()
dim file_name
Feuil1.Select
Application.Dialogs(xlDialogSaveAs).Show "\\tonton\essai.csv", 1
file_name = Application.GetSaveAsFilename
End Sub


Merci
 
Re : Maco pour récupérer le nom du fichier

Re

essaye peut être comme ci dessous :

Code:
Sub test()
Dim file_name As String
file_name = Application.GetSaveAsFilename
ActiveWorkbook.SaveAs file_name, xlCSV
End Sub

@+
 
Re : Maco pour récupérer le nom du fichier

Salut!

Cela ne fonctionne pas car il ne créer pas de copie de la feuille1.
Par contre le, xlCSV marche..

Voila ou j'en suis.

Sub Backup()
Application.Dialogs(xlDialogSaveAs).Show "W:\", xlCSV

End Sub

Mais cela ne créer pas de copie.

Merci
 
Re : Maco pour récupérer le nom du fichier

Re

non, le code que je t'ais donné ne copie pas une feuille mais permet d'enregistrer un classeur xls en csv. regarde le code ci dessous pour copier une feuille dans un nouveau classeur, si cela peut t'inspirer :

Code:
Sub test()
Dim ws As Worksheet, ws2 As Worksheet, file_name As String
Set ws = ActiveSheet
Workbooks.Add
Set ws2 = ActiveSheet
ws.Copy before:=ws2
file_name = Application.GetSaveAsFilename
ActiveWorkbook.SaveAs file_name, xlCSV
End Sub

bonne soirée
@+
 
Re : Maco pour récupérer le nom du fichier

bonjour rjcb

Salut Pierrot

un peu plus concis

Code:
Sub test()
Dim Filename As String
Filename = InputBox("Quel nom donner a la copie")
ActiveSheet.Copy
ActiveWorkbook.SaveAs Filename, xlCSV
End Sub
 
Re : Maco pour récupérer le nom du fichier

Bonjour

Bonjour pierrejean.

Merci pour cette proposition, mais c'est pas tout a fait cela que je cherche (je suis exigent !!) 🙂


J'ai un bouton sauvegarde.

Donc lors de l'appui sur le bouton, la boite de dialogue "enregistrer sous" s'ouvre.

Une fois cliquer sur le bouton enregistrer cela doit créer une copie de la feuille 1 sans les macros avec pour nom essai.csv dans le répertoire c:\. sans renomer ma feuille originale

Application.Dialogs(xlDialogSaveAs).Show "C:\défini par l'utilisateur.csv", xlCSV
ActiveWorkbook.SaveAs Filename, xlCSV
End Sub

Private Sub CommandButton1_Click()
test
End Sub

Pour l'instant après l'enregistrement j'ai une copie mais de tout le fichier avec les macro et aussi renomer le fichier original

enfin, comment faire pour récupérer après l'enregistrement de la copie le nom de celle ci.

Merci de vos lumières
 
Dernière édition:
Re : Maco pour récupérer le nom du fichier

bonjour rjcb

Salut Pierrot 🙂

un mixte avec le code de Pierrot:

Code:
Sub test()
Dim Filename As String
Filename = Application.GetSaveAsFilename & "csv"
ActiveSheet.Copy
ActiveWorkbook.SaveAs Filename, xlCSV
End Sub

avec dans le bouton_click
call test
 
Re : Maco pour récupérer le nom du fichier

Bonjour à tous le monde.

En fait je dois mal m'exprimer. 🙁

J'ai utiliser le code de pierrejean

Sub test()
Dim Filename As String
Filename = Application.GetSaveAsFilename & "csv"
ActiveSheet.Copy
ActiveWorkbook.SaveAs Filename, xlCSV
End Sub

mais petit pb:

Lors de l'appui sur le bouton: ,

1. cela ouvre la boite de dialogue "enregister sous".
2. L'utilisateur tappe le nom de fichier qu"il souhaite
3. A l'appui de enregister (de la boite de dialogue) cela créer une copie de la feuille 1 sans les macros et sans renomer la feuille de départ, (celle où il est au moment de l'appui du bouton). (c'est peut etre pas possible)

Cela veut dire qu'il y a toujours le fichier de départ avec tout le temp le meme nom + 1 fichier contenant la feuill1 seulement avec le nom donné par l'utilisateur.

Une fois ceci effectué, il faudrait que j'arrive a récupérer le nom que l'utilisateur a donné au fichier créer (copie de la feuille 1) (c'est a dire a savoir ce qu'il a taper comme nom dans la boite de dialogue enregister sous)

Merci bcp 😉
 
Re : Maco pour récupérer le nom du fichier

ce qu'ecrire veux dire !!!

extrait du post

A l'appui de enregister (de la boite de dialogue) cela créer une copie de la feuille 1 sans les macros et sans renomer la feuille de départ, (celle où il est au moment de l'appui du bouton). (c'est peut etre pas possible)

extrait du post precedent !!!


Une fois cliquer sur le bouton enregistrer cela doit créer une copie de la feuille 1 sans les macros avec pour nom essai.csv dans le répertoire c:\. sans renomer ma feuille originale

ensuite:

il faudrait que j'arrive a récupérer le nom que l'utilisateur a donné:

ce nom est dans la variable Filename

pour que l'on se comprenne:

decrit exactement le resultat de l'appui sur le bouton

Nom du fichier: j'ais compris : celui tapé par l'utilisateur
extension du fichier : j'ais compris .csv
nombre de feuille :1
nom de la feuille: je n'ais pas vu d'indication sur ce sujet
macros exportées : non
A te lire
 
Re : Maco pour récupérer le nom du fichier

Rebonjour,

Oui en effet je m'exprime pas très bien.

Appui sur le bouton dans le fichier (test.xls) qui contient la macro:

-Ouvre la boite de dialogue "enregister sous" avec une sélection des .csv avec le répertoire par défaut c:\tonton\

-L'utilisateur tape un nom de fichier en .csv par ex total1.csv

-Puis l'utilisateur appui sur enregistrer. Cela créer un fichier total1.csv qui est une copie du contenu des cellules de la feuil1 du fichier test.xls (sans les macro) dans c:/tonton sans changer quoi que ce soit au fichier test.xls

Cette action "d'enregistrer" doit juste enregistrer le fichier en total1.csv dans c:/tonton sans l'ouvrir.

-Enfin, il faudrait si possible de récupérer le nom du fichier créé par l'utilisateur dans une variable qui se situe dans la macro du fichier text.xls.
Donc pour cela peut etre essayé de récupérer ce qu'a tappé l'utilisateur dans la boite de dialogue "enregister sous" comme nom de fichier soit total1.csv.

Merci beaucoup, J'espère que je suis clair dans mes explications.
N'hésitez pas à me dire ce qui n'est pas clair.
 
Re : Maco pour récupérer le nom du fichier

re

vois si cela te convient

le bouton est sur la feuille 2 mais il peut etre n'importe ou pourvu qu'il appelle la macro test
c'est la Feuil1 qui est enregistrée (à adapter eventuellement dans la macro si tu voulais changer son nom)
la ligne msgbox sera a supprimer lorsque tu auras vu ou se trouve le nom du fichier (c'est le nom complet y compris le chemin, si tu le souhaites on pourra faire en sorte de n'avoir que le nom .Dans ce cas precise ce que tu veux c-a-d avec ou sans extension)
 

Pièces jointes

- 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
5
Affichages
308
Réponses
1
Affichages
172
Réponses
4
Affichages
481
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…