Save As avec Nom prédéfini : n'enregistre pas

Kaciel

XLDnaute Nouveau
Bonjour à tous,

Après plusieurs jours de recherche sur le net je finis par mettre mon orgueil de côté en m'avouant vaincu et demande de l'aide.
La situation est la suivante : je souhaite nommer un fichier avec une date tout en proposant un chemin par défaut.
Voici le code :

Code:
Dim dte As Date
Dim dte1 As String
dte = Now()

dte1 = Format(dte, "dd-mm-yy")

With Application.GetSaveAsFilename(["Fichier du "& dte1], _
        FileFilter:="Excel Files,*.xlsx,*.*,*.*")
     
       End With

Seulement voilà, j'ai bien une fenêtre "Enregistrer sous" qui s'ouvre mais :
- la proposition du nom de fichier ne prend pas en compte la date et suggère donc Fichier du .xlsx, sans y intégrer la date (j'aimerais avoir Fichier du 28-05-15.xlsx par exemple)
- le chemin par défaut proposé est sur le C:\Users\Username\Desktop alors que j'aimerais préparamétrer un autre lecteur
- et enfin, si je clique sur enregistrer la fenêtre se ferme et je reste sur mon fichier de macro .xlsm sans rien avoir généré comme fichier .xlsx

Merci d'avance pour votre aide

Kaciel
 

Bebere

XLDnaute Barbatruc
Re : Save As avec Nom prédéfini : n'enregistre pas

bonjour Kaciel
bienvenue
2 exemples à tester
Code:
Sub Classeur_SaveAs()
Dim fname
fname = Application.GetSaveAsFilename(InitialFileName:="Fichier du " & Format(Date, "dd-mm-yy"), FileFilter:="Excel Files (*.XLS), *.XLS", Title:="Save As")
If fname = False Then Exit Sub
ActiveWorkbook.SaveAs Filename:=fname
End Sub

Sub sauveclasseur()

'Dim dte As Date
'Dim dte1 As String
Dim chemin  As String, nomfichier As String
'dte = Now()
chemin = "C:\dossier\" ' ou "C:\dossier\sousdossier\"  ou "C:\dossier\sousdossier\Soussousdossier\"   'à adapter"
nomfichier = "Fichier du " & Format(Date, "dd-mm-yy") & ".xls"

ActiveWorkbook.SaveCopyAs chemin & nomfichier

End Sub
 

Kaciel

XLDnaute Nouveau
Re : Save As avec Nom prédéfini : n'enregistre pas

Merci Bebere c'est pas mal du tout...A un détail près :

Je crée un nouveau fichier dénommé Fichier du 28-05-15.xlsx qui arrive au bon endroit etc, parfait.
Seulement le fichier qui contient le code est toujours ouvert et j'aimerais donc le fermer, sans l'enregistrer pour ne pas toucher au code.
Est-ce qu'il y a un moyen pour obliger cela ?

J'essaie le code ci-dessous, mais il me demande malgré tout si je veux le sauvegarder :
Code:
Dim chemin  As String, nomfichier As String
'dte = Now()
chemin = "P:\DOSSIER\SOUSDOSSIER\"
nomfichier = "Fichier du " & Format(Date, "dd-mm-yy") & ".xlsx"

ActiveWorkbook.SaveCopyAs chemin & nomfichier
MsgBox "Votre fichier a été sauvegardé sous " & chemin
        
Windows("Extraction inventaire pour comité refus.xlsm").Activate
ActiveWindow.Close

Puis-je le forcer à fermer sans enregistrer ?

D'avance merci, j'ai la racine de mon problème de réglée merci !

Kaciel
 

Bebere

XLDnaute Barbatruc
Re : Save As avec Nom prédéfini : n'enregistre pas

bonjour Kaciel

exemple de chemin = "P:\DOSSIER\SOUSDOSSIER\"
si tu n'as qu'un dossier chemin = "P:\DOSSIER\" 'remplace dossier par le nom que tu veux
idem pour sousdossier
ferme sans sauver
ActiveWorkbook.Close false
ou
thisWorkbook.Close false

il n'a rien qui demande de sauver
il y a juste la ligne msgbox qui donne comme message que le fichier a été sauvé
tu l'as supprime
 

Discussions similaires

Réponses
3
Affichages
166

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
314 628
Messages
2 111 337
Membres
111 105
dernier inscrit
Joffrette