Fenêtre chemin d'enregistrement

AzoR

XLDnaute Occasionnel
Bonjour !

Dans mon programme je fais une sauvegarde si l'utilisateur coche une case avec un chemin de sauvegarde déjà prédéfini ( Bureau ) :

Sub Save()
Dim nom As String
Dim rep As String

Select Case MsgBox("Voulez-vous sauvegarder cette acquisition ?", vbYesNo, "Sauvegarde")
Case vbYes

nom = Day(Date) & "-" & Month(Date) & "-" & Year(Date) & "_" & Hour(Time) & "h" & Minute(Time) & "_" & ActiveWorkbook.Name
ActiveWorkbook.SaveCopyAs "C:\Users\admin\Desktop\Acquisitions Coin Noir\" & nom
rep = MsgBox("Votre base de données est sauvegardée sous le nom : " & nom, vbYes + vbInformation, "Copie sauvegarde classeur")

Case vbNo
End Select

End Sub


Or maintenant je souhaiterais que l'utilisateur puisse avoir accès à une fenêtre tout comme lorsque l'on enregistre une photo par exemple, où l'utilisateur peut choisir son dossier de sauvegarde qu'il souhaite. Avec le nom du fichier pré-rentré de la même forme qu'actuellement. Et si l'utilisateur le souhaite qu'il puisse tout de même pouvoir le changer tout comme lorsque l'on enregistre une image et qu'on souhaite lui donner le nom que l'on souhaite au moment de son enregistrement.

Avez-vous déjà réalisé ceci ?

Merci d'avance !

Cordialement, AzoR
 

vgendron

XLDnaute Barbatruc
Re : Fenêtre chemin d'enregistrement

Hello

il faut utiliser le GetSaveAsFilename
ex:
FileSaveName = Application.GetSaveAsFilename(, "Fichiers excel (*.xls),*.xls")

ci dessous un bout de code que j'ai utilisé par le passé
Code:
'crée- un nouveau classeur dans lequel les mesures et températures sont regroupées: servira pour remplir le masque
Set NvClasseur = Workbooks.Add
Do
FileSaveName = Application.GetSaveAsFilename(, "Fichiers excel (*.xls),*.xls")

'If fileSaveName <> False Then
'    MsgBox "Enregistrer sous " & fileSaveName
'End If
Loop Until FileSaveName <> False
NvClasseur.SaveAs Filename:=FileSaveName
'MsgBox "nom du classeur actif = " & ActiveWorkbook.Name
FileNomRésultats = ActiveWorkbook.Name
 

AzoR

XLDnaute Occasionnel
Re : Fenêtre chemin d'enregistrement

Bonjour vgendron,

Merci pour ta réponse.

En effet il faut utiliser GetSaveAsFilename, j'ai donc utilisé ceci :

Sub Save()
Dim FileSaveName As Variant

Select Case MsgBox("Voulez-vous sauvegarder cette acquisition ?", vbYesNo, "Sauvegarde")
Case vbYes

FileSaveName = Application.GetSaveAsFilename( _
fileFilter:="Text Files (*.xls), *.xls")
If FileSaveName <> False Then
MsgBox "Fichier sauvegardé sous : " & FileSaveName
End If

Case vbNo
End Select

End Sub

Ces lignes m'ouvrent bien la fenêtre enregistrer sous, je peux modifier le nom comme je le souhaite et sélectionner le lieux de sauvegarde or cela ne s'enregistre pas, une idée de ligne à rajouter pour que le fichier s'enregistre bien ?

Merci de ton attention,

Cordialement, AzoR
 

vgendron

XLDnaute Barbatruc
Re : Fenêtre chemin d'enregistrement

Re,
oui, il te manque "NvClasseur.SaveAs Filename:=FileSaveName"

en fait. le GetSaveAsFilename se contente de t'ouvrir la boite de dialogue et de "récupérer" un path et un nom de fichier..
mais il ne fait pas la sauvegarde elle meme..
 

AzoR

XLDnaute Occasionnel
Re : Fenêtre chemin d'enregistrement

Re,

C'est bon ça marche très bien, voici le code que j'ai mis du coup :
Sub Save()
Dim FileSaveName As Variant
Dim NvClasseur As Workbook

Select Case MsgBox("Voulez-vous sauvegarder cette acquisition ?", vbYesNo, "Sauvegarde")
Case vbYes

Set NvClasseur = ThisWorkbook

FileSaveName = Application.GetSaveAsFilename( _
fileFilter:="Text Files (*.xls), *.xls")
If FileSaveName <> False Then
NvClasseur.SaveAs Filename:=FileSaveName
MsgBox "Fichier sauvegardé sous : " & FileSaveName
End If

Case vbNo
End Select

End Sub

et cela fonctionne !

Merci beaucoup, Cordialement, AzoR
 

Discussions similaires

Statistiques des forums

Discussions
312 737
Messages
2 091 497
Membres
104 960
dernier inscrit
jbhery@