RESOLU Enregistrer sous avec VBA

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à tous et particulièrement à JM,

Toujours en quête d'automatiser mes classeurs, j'ai fait, avec l'aide bien sur, d'excel, la macro suivante :

Sub enregistrersous()
'
' enregistrersous Macro
'

'
ChDir "C:\Users\Lionel\Desktop"
ActiveWorkbook.SaveAs Filename:= _
"C:\Users\Lionel\Desktop\Pointage Matrice essaiTest.xlsm", FileFormat:= _
xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
End Sub

Je souhaiterai, mais évidemment, je ne sais pas faire, que la macro me propose de lui donner la destination de l'enregistrement et qu'elle me propose aussi de donner un nom au fichier.

J'ai chercher sur le forum des dialogues similaires mais je n'ai pas trouvé "ma réponse".

Merci de votre aide,
Amicalement,
Lionel,
 
Dernière édition:

adoul

XLDnaute Nouveau
Re : Enregistrer sous avec VBA

Salut tous essayé avec sa:
Sub sauver()
Dim nomSauvegarde As String
Dim Affichage As Object
Sheets("nom").Copy

ActiveSheet.Shapes("Button 1").Select
Selection.Delete

MsgBox "Veuillez saisir le chemin et le nom du fichier de sauvegarde", vbInformation, "Destination"

'EnregistrementSous
EnregistrerSous:
FichierEnregistrerSous = Application.GetSaveAsFilename(Format(Now(), "mmmm") & " " & Format(Now(), "mm"), _
fileFilter:="Fichiers Microsoft Excel (*.xls), *.xls", Title:="Nom et chemin du fichier de sauvegarde")
If FichierEnregistrerSous = "" Then Exit Sub

If Dir(FichierEnregistrerSous) <> "" Then
Affichage = MsgBox("Un fichier du même nom existe déjà à cet emplacement." & _
Chr(10) & Chr(10) & "Renommez le ou supprimer le.", vbExclamation, "Fichier Existant")
GoTo EnregistrerSous
End If

nomSauvegarde = ActiveWorkbook.Name

ActiveWorkbook.SaveAs Filename:=FichierEnregistrerSous
ActiveWindow.Close

End sub
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Re : Enregistrer sous avec VBA

Salut tous essayé avec sa:
Sub sauver()
Dim nomSauvegarde As String
Dim Affichage As Object
Sheets("nom").Copy

Bonjour Adoul,
Merci pour votre réponse.
Votre code "beug" sur la ligne en rouge.........

hasco, merci pour votre lien.
J'ai essayé mais ça ne marche pas..... Le chemin et le nom sont bien proposés mais la macro ne sauvegarde pas. voici le code :
Sub EnregistrerSous()

Dim NomFichier, x As String, w As String, NomDefaut As String

NomVariable = Range("B13").Value
x = ThisWorkbook.Name
w = " " & NomVariable

NomDefaut = x & w

NomFichier = Application.GetSaveAsFilename(NomDefaut, "Microsoft Excel (*.xls), *.xls")

If NomFichier = False Then
MsgBox "Enregistrement annulé."
Else
MsgBox NomFichier
End If

End Sub

Quant à moi, j'ai fait avec l'aide d'excel une autre macro mais si le fichier existe déja et que je veux enregistrer sous un autre nom, je ne peux pas. La macro me dit qu'il existe déjà, me propose de le remplacer ( oui - non - annuler) et si je dis non ou annuler, ça "beug" mais je ne peux pas renommer. Voici le code :

Sub Macro1()
'
' Macro1 Macro
'

'
ChDir "C:\Users\Lionel\Desktop"
ActiveWorkbook.SaveAs Filename:= _
"C:\Users\Lionel\Desktop\EnregistrerSousVBA.xlsm", FileFormat:= _
xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
Application.Goto Reference:="EnregistrerSous"
End Sub

Merci pour votre aide,
Amicalement,
Lionel,
 

Discussions similaires

Statistiques des forums

Discussions
312 198
Messages
2 086 153
Membres
103 135
dernier inscrit
Imagine