XL 2010 SaveAs Filename

  • Initiateur de la discussion Initiateur de la discussion TheProdigy
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

TheProdigy

XLDnaute Impliqué
Bonjour,

Comment enregistrer le fichier sous le nom " achat le dd/mm/yyyy à hh:mm ? dans le code
VB:
Do
fName = Application.GetSaveAsFilename
Loop Until fName <> False

ActiveWorkbook.SaveAs Filename:=fName & "xls", _
FileFormat:=xlWorkbookNormal, CreateBackup:=False

Si vous avez un autre code mieux que celui là n'hésitez pas à me le communiquer car même dans ce code il m'affiche une erreur quand il me dit le fichier classeur 1 existe déjà voulez vous remplacer le classeur 1 (déjà existant) je clique sur annuler il affiche une erreur 1004 la méthode 'SaveAs' de objet '_Workbook' a échoué

Merci
 
Bonjour Jean Marie, adil, le Forum 🙂

@Staple1600 : de nada Señor, con mucho gusto. 😉

@adilprodigy : une autre façon de faire. Renommer et sauvegarder le classeur.

VB:
Option Explicit

Sub Nouv_Achats()
Dim derlig&, i&, AncWk As Workbook
Dim chemin$, temp$, NouvNom$, t As Date

    chemin = ThisWorkbook.Path & "\Fichiers\"

    With Sheets(1)
        derlig = .Cells(Rows.Count, "A").End(xlUp).Row

        Set AncWk = Workbooks("Achats.xlsm")

        For i = 2 To derlig
            temp = Format(.Cells(i , "A"), "dd_mm_yyyy à h""h ""mm")

            NouvNom = "achat le " & temp

            AncWk.SaveAs Filename:=chemin & NouvNom & ".xls", FileFormat:=xlExcel8
            t = Timer + 1: Do Until Timer > t: DoEvents: Loop
        Next i
    End With

    Application.DisplayAlerts = False
    ThisWorkbook.Save
    Application.Quit
End Sub
 
Dernière édition:
Bonjour @Staple1600 , bonjour @Lone-wolf ,

Bonsoir le fil, le forum

Une autre syntaxe
Code (Visual Basic):

Sub a()
Dim strPath$, fn$
strPath = ThisWorkbook.Path & "\"
fn = strPath & Format(Now, """achat le ""dd_mm_yyyy"" à ""hh""h""mm"".xls""")
ActiveWorkbook.SaveAs fn, 56
End Sub

@Lone-wolf
Euh, Windows ne va pas aimer ton nom de fichier, non ? 🙄 😉

Staple1600, ton code marche bien c'est ce que je veux, sauf que

1 ) Il enregistre tout le classeur entier et non pas extraire les données dans un nouveau classeur
2) Quand il trouve la même date avec la même heure "Voulez vous remplacer?" je clique sur Annuler et un message d'erreur s'affiche pour débogage
3) Je souhaiterais qu'il formate l'extraction comme le fichier que je vous joins

Bref je ne sais pas comment adapter ton code au fichier joint

Merci.

Lone-wolf, merci pour ta solution même si je ne cherche pas la date de l'achat exact mais je vais garder ta solution elle me sera utile prochainement.

Merci.
 

Pièces jointes

Bonjour le fil, le forum

Bonjour @Staple1600 , bonjour @Lone-wolf ,
Staple1600, ton code marche bien c'est ce que je veux, sauf que
1 ) Il enregistre tout le classeur entier et non pas extraire les données dans un nouveau classeur
2) Quand il trouve la même date avec la même heure "Voulez vous remplacer?" je clique sur Annuler et un message d'erreur s'affiche pour débogage
3) Je souhaiterais qu'il formate l'extraction comme le fichier que je vous joins
Bref je ne sais pas comment adapter ton code au fichier joint

Je me suis contenté de répondre à la question telle qu'elle était rédigée dans ton premier message 😉
Bonjour,
Comment enregistrer le fichier sous le nom " achat le dd/mm/yyyy à hh:mm ? dans le code
Merci.

EDITION: Bonjour Lone-Wolf
Tu sais que le mode EDITION existe ?
Inutile de créer un post pour simplement me dire Bonjour 😉
(Editer ton précédent message pour le faire suffit amplement 😉)
Sauf à vouloir faire exploser ton compteur de message 😉
 
Dernière édition:
Bonjour adilprodigy, Lone-wolf, JM,

Plutôt laborieux ce fil alors que c'est classique :
Code:
Private Sub CommandButton1_Click()
Dim fn$
Application.ScreenUpdating = False
Application.DisplayAlerts = False 'si le fichier existe déjà
With Workbooks.Add(xlWBATWorksheet).Sheets(1)
    ActiveWindow.DisplayGridlines = False 'pas de quadrillage
    .Name = Me.Name
    Me.Cells.Copy .[A1]
    .[A1].CurrentRegion.Borders.Weight = xlThin
    .Columns.AutoFit 'ajustement largeur
    fn = ThisWorkbook.FullName
    fn = Left(fn, InStrRev(fn, ".") - 1) 'sans l'extension
   .SaveAs fn & " achat le " & Format(Now, "dd-mm-yyyy \à hh\h mm\m\i\n"), 56  'fichier .xls
    .Parent.Close
End With
End Sub
La copie des cellules sur un document vierge évite de copier le code VBA.

Fichier joint.
 

Pièces jointes

Dernière édition:
Re,

Le code est légèrement plus simple si l'on crée un fichier .xlsx :
Code:
Private Sub CommandButton1_Click()
Dim fn$
Application.ScreenUpdating = False
Application.DisplayAlerts = False 'si le fichier existe déjà
Me.Copy
With ActiveSheet
    .OLEObjects.Delete 'supprime le bouton
    .[A1].CurrentRegion.Borders.Weight = xlThin
    .Columns.AutoFit 'ajustement largeur
    fn = ThisWorkbook.FullName
    fn = Left(fn, InStrRev(fn, ".") - 1) 'sans l'extension
    .SaveAs fn & " achat le " & Format(Now, "dd-mm-yyyy \à hh\h mm\m\i\n"), 51  'fichier .xlsx
    .Parent.Close
End With
End Sub
Fichier (2).

A+
 

Pièces jointes

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
470
Réponses
3
Affichages
510
Réponses
2
Affichages
864
Retour