[RESOLU] - VBA - Enregistrer sous

FlorianN

XLDnaute Junior
Bonjour le forum,

J'ai effectué des recherches sur le net pour arriver à ceci : enregistrer un nouveau fichier ne comportant pas les macros du fichier d'origine et enregistrer le nouveau fichier dans le dossier qui contient le fichier de base et le tout avec un nom prédéterminé.

En clair :
1 - ouvrir un fichier pour exécuter des macros
2 - enregistrer le travail obtenu en *.xls
3 - enregistrer le nouveau fichier dans le dossier qui contient le fichier de base
4 - attribuer un nom automatiquement au nouveau fichier

Voici le code utilisé :
Code:
'Quitter & Enregistrer
Application.DisplayAlerts = False

    UserForm1.Hide

    Feuil1.Shapes("CommandButton1").Delete

    With ActiveWorkbook.VBProject
        For Each VBC In .VBComponents
            If VBC.Type = 100 Then
                With VBC.CodeModule
                .DeleteLines 1, .CountOfLines
                .CodePane.Window.Close
                End With
            Else: .VBComponents.Remove VBC
            End If
        Next VBC
    End With

    Application.DisplayAlerts = False
    ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" _
    & Format(Now, "yyyy-mm") & " - TCM" & ".xls"

Application.DisplayFullScreen = False

Application.ScreenUpdating = True
Application.DisplayAlerts = True

Application.Quit


Deux problèmes apparaissent :
1 - un beau message au moment de l'enregistrement du fichier : "Voulez-vous enregistrer les modifications que vous avez apportées à "aaaa-mm - TCM.xls" ?"
2 - lorsque je souhaite ouvrir le fichier qui est enregistré, j'ai le message suivant : "Le format ou l'extension du fichier "aaaa-mm - TCM.xls" ne correspondent pas. Le fichier peut présenter un risque ou avoir été endommagé. Ne l’ouvrez pas, à moins que la source soit fiable. Voulez-vous quand même l'ouvrir ?"


Mes questions sont les suivantes :
1 - comment ne pas avoir de message au moment de l'enregistrement ?
2 - comment éviter le message à l'ouverture du nouveau fichier sans macro ?


Vous remerciant d'avance pour votre aide.
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : [RESOLU] - VBA - Enregistrer sous

Bonsoir à tous

C'est pourtant pas les exemples qui manquent sur le net...
Il suffit de chercher avec le premier moteur de recherche venu ;)
Code:
Sub a()
MoisDernier = Format(DateAdd("m", -1, Date), "yyyy-mm")
MsgBox MoisDernier
End Sub
ou aussi
Code:
Sub b()
MoisDernier = Format(Date - Day(Date), "yyyy-mm")
MsgBox MoisDernier
End Sub
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : [RESOLU] - VBA - Enregistrer sous

Re

Et pour coller précisément à la demande
(même si je vois que tu n'utilises pas cette astuce du tout dans le format...)
Code:
NFic = ThisWorkbook.Path & "\" & Format(Date - Day(Date), "yyyy-mm""-TCM.xlsx""")

Merci Staple1600 !
n'ai jamais arrivé à trouver sur le net une telle explication.:p

Sans doute une question de mots-clés dans tes recherches ;)
http://www.excel-downloads.com/forum/183211-renommer-fichier-en-ajoutant-aaaa-mm-mois-precedent.html
[URL]https://www.excel-downloads.com/threads/mois-suivant-mois-precedent.113283/

[/URL]
 
Dernière édition:

FlorianN

XLDnaute Junior
Re : [RESOLU] - VBA - Enregistrer sous

Bonsoir le fofo,

J'ai une macro qui ne veux plus enregistrer mon fichier.
Voici le code :
Code:
Dim NFic$
NFic = "\\senpan\CTW\admin\Reporting\1. AGENCE\2. Rapports - Statistiques\6 - 2016\Florian\" & Format(DateAdd("m", -1, Date), "yyyy-""Tx - TGP.xlsx")

Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:=NFic, FileFormat:=xlOpenXMLWorkbook
Application.DisplayAlerts = True

ThisWorkbook.Saved = True
ActiveWorkbook.Close savechanges:=True

La ligne qui pose problème est la suivante :
Code:
ActiveWorkbook.SaveAs Filename:=NFic, FileFormat:=xlOpenXMLWorkbook

Le message d'erreur d'Excel 2013 :
"La méthode 'SaveAs' de l'objet '_Workbook' a échoué"

Moi plus rien comprendre car avec une autre macro, sous Excel 2013, ça fonctionne !
 

Modeste

XLDnaute Barbatruc
Re : [RESOLU] - VBA - Enregistrer sous

Bonjour FlorianN

NFic = "\\senpan\CTW\admin\Reporting\1. AGENCE\2. Rapports - Statistiques\6 - 2016\Florian\" & Format(DateAdd("m", -1, Date), "yyyy-""Tx - TGP.xlsx")
Sans certitude absolue, il me semble que la parenthèse finale est celle que devrait "fermer" le Format?
Maintenant, ce que tu veux utiliser précisément comme nom, on ne le sait pas, mais j'essaierais:
Format(DateAdd("m", -1, Date), "yyyy") & "-Tx - TGP.xlsx"
 

Discussions similaires

Réponses
2
Affichages
99

Statistiques des forums

Discussions
311 725
Messages
2 081 940
Membres
101 845
dernier inscrit
annesof