2017-08-12 3 views
1

Je veux faire un bouton de sauvegarde pour mon programme de validation dans VBA Excel. Un bouton de sauvegarde enregistrera le fichier dans un chemin spécifique et le renommera automatiquement en fonction du statut du document (Nettoyer ou Erreur).Est-il possible de faire le bouton de sauvegarde (pas enregistrer en tant que bouton) pour enregistrer le document dans un chemin spécifique?

Si le document a été, sauf erreur lorsque le document encore, le fichier sera nommé error.xlsm

Mais, quand je corriger l'erreur du document. Le document s'appellera clean.xlsm. Il m'ennuie de supprimer le premier fichier (error.xlsm) manuellement.

Est-il possible de faire enregistrer le bouton Enregistrer (pas enregistrer en tant que bouton) pour enregistrer le document dans un chemin spécifique sans utiliser Enregistrer sous?

Voici mon code:

Private Sub CommandButton2_Click() 
ActiveWorkbook.SaveAs Filename:="D:\" & Sheets("C").Range("G23").Text & ".xlsm", _ 
FileFormat:=xlOpenXMLWorkbookMacroEnabled, Password:=vbNullString, WriteResPassword:=vbNullString, _ 
    ReadOnlyRecommended:=False, CreateBackup:=False 
    ActiveWorkbook.Close 
End Sub 

* Note: Sheets("C").Range("G23").Text contient statut du document (propre ou erreur si la formule)

Répondre

1

pour cette solution ...

Private Sub CommandButton2_Click() 
Dim fName As String 
Application.DisplayAlerts = False 
fName = ActiveWorkbook.Sheets("C").Range("G23").Value 
ActiveWorkbook.SaveAs FileName:="D:\" & fName & ".xlsm", _ 
FileFormat:=xlOpenXMLWorkbookMacroEnabled, Password:=vbNullString, WriteResPassword:=vbNullString, _ 
    ReadOnlyRecommended:=False, CreateBackup:=False 
ActiveWorkbook.Close 
On Error Resume Next 
Select Case fName 
    Case "Error" 
     Kill "D:\Clean.xlsm" 
    Case "Clean" 
     Kill "D:\Error.xlsm" 
End Select 
End Sub 
+0

i ont été essayé, monsieur .. mais, il y a encore 2 fichier, (propre et erreur). je veux si le fichier est propre, le fichier d'erreur qui avait été enregistré auparavant, effacé automatiquement .. – arifulromadhon

+0

peut-être que c'est comme renommer le fichier, puis enregistrez-le ... – arifulromadhon

+0

Le code enregistre d'abord le fichier avec le nouveau nom de fichier comme la chaîne disponible en G23 et supprime l'autre fichier. J'ai essayé le code et il s'est passé sans problème. – sktneer