Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 SaveAs Filename

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
 

Lone-wolf

XLDnaute Barbatruc
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:

TheProdigy

XLDnaute Impliqué
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

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

  • Test.xlsm
    39.6 KB · Affichages: 26

Lone-wolf

XLDnaute Barbatruc
Bonjour adil

ton fichier en retour. J'ai mis le bouton et la macro dans la feuille2, ça évite de copier aussi le bouton. Regarde si cela te convient.
 

Pièces jointes

  • Test.xlsm
    37.7 KB · Affichages: 31

Staple1600

XLDnaute Barbatruc
Bonjour le fil, le forum


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:

job75

XLDnaute Barbatruc
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

  • Test(1).xlsm
    43.2 KB · Affichages: 22
Dernière édition:

job75

XLDnaute Barbatruc
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

  • Test(2).xlsm
    43.1 KB · Affichages: 22
Dernière édition:

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…