Note: The other languages of the website are Google-translated. Back to English

Comment enregistrer un nom de fichier Excel avec horodatage?

Avez-vous déjà essayé d'enregistrer un fichier Excel avec l'horodatage actuel? Cet article vous montrera la méthode pour y parvenir.

Enregistrer un nom de fichier Excel avec horodatage avec code VBA


flèche bleue bulle droite Enregistrer un nom de fichier Excel avec horodatage avec code VBA


Vous pouvez exécuter le code VBA ci-dessous pour enregistrer un nom de fichier Excel avec horodatage. Veuillez faire comme suit.

1. Dans le classeur, vous devez le nommer par horodatage actuel, appuyez sur le bouton autre + F11 touches simultanément pour ouvrir le Fenêtre Microsoft Visual Basic pour Applications.

2. dans le Microsoft Visual Basic pour applications fenêtre, veuillez cliquer insérer > Module. Copiez ensuite le code VBA ci-dessous dans le Code la fenêtre. Voir la capture d'écran:

Code VBA : enregistrez un nom de fichier Excel avec horodatage (remplacez le nom de fichier par horodatage)

Sub SaveAsFilenameWithTimestamp()
'Updated by Extendoffice 20191223
Dim xWb As Workbook
Dim xStrDate As String
Dim xFileName As Variant
Dim xFileDlg As FileDialog
Dim i As Variant
Application.DisplayAlerts = False
Set xWb = ActiveWorkbook
xStrDate = Format(Now, "yyyy-mm-dd hh-mm-ss")
If Right(xWb.Name, 4) = "xlsm" Then
  xFileName = Application.GetSaveAsFilename(xStrDate, "Excel Macro-Enabled Workbook (*.xlsm),*.xlsm")
Else
  xFileName = Application.GetSaveAsFilename(xStrDate, "Excel Workbook (*.xlsx),*.xlsx")
End If
If xFileName = False Then
Else
  xWb.SaveAs (xFileName)
End If
Application.DisplayAlerts = True
End Sub

3. appuie sur le F5 clé pour exécuter le code. Puis un Enregistrer sous s'affiche, vous pouvez voir l'horodatage s'afficher dans la zone Nom de fichier. Veuillez spécifier un emplacement pour enregistrer ce fichier, puis cliquez sur le bouton Enregistrer bouton. Voir la capture d'écran:

Notes:

1. Le nouveau fichier Excel créé sera enregistré directement avec le nom de l'horodatage actuel.

2. Pour les fichiers Excel déjà existants, le nom de fichier d'origine sera remplacé par l'horodatage.

Si vous souhaitez uniquement ajouter un horodatage suivi du nom de fichier d'origine au lieu de le remplacer, veuillez appliquer le code VBA ci-dessous.

Code VBA : enregistrez un nom de fichier Excel avec horodatage (insérez l'horodatage suivi du nom de fichier d'origine)

Sub AddTimestampToFileName()
'Updated by Extendoffice 20191223
Dim xWb As Workbook
Dim xStr As String
Dim xStrOldName As String
Dim xStrDate As String
Dim xFileName As Variant
Dim xFileDlg As FileDialog
Dim i As Variant
Application.DisplayAlerts = False
Set xWb = ActiveWorkbook
xStrOldName = xWb.Name
xStr = Left(xStrOldName, Len(xStrOldName) - 5)
xStrDate = Format(Now, "yyyy-mm-dd hh-mm-ss")
If Right(xStrOldName, 4) = "xlsm" Then
  xFileName = Application.GetSaveAsFilename(xStr & " " & xStrDate, "Excel Macro-Enabled Workbook (*.xlsm),*.xlsm")
Else
  xFileName = Application.GetSaveAsFilename(xStr & " " & xStrDate, "Excel Workbook (*.xlsx),*.xlsx")
End If
If xFileName = False Then
Else
  xWb.SaveAs (xFileName)
End If
Application.DisplayAlerts = True
End Sub

flèche bleue bulle droiteArticles connexes:


Les meilleurs outils de productivité de bureau

Kutools for Excel résout la plupart de vos problèmes et augmente votre productivité de 80%

  • Réutilisation: Insérer rapidement formules complexes, graphiques et tout ce que vous avez utilisé auparavant; Crypter les cellules avec mot de passe; Créer une liste de diffusion et envoyer des e-mails ...
  • Barre Super Formula (modifiez facilement plusieurs lignes de texte et de formule); Disposition de lecture (lire et modifier facilement un grand nombre de cellules); Coller dans la plage filtréeplus
  • Fusionner les cellules / lignes / colonnes sans perdre de données; Contenu des cellules divisées; Combiner des lignes / colonnes en double... Empêcher les cellules en double; Comparer les gammesplus
  • Sélectionnez Dupliquer ou Unique Lignes; Sélectionnez les lignes vides (toutes les cellules sont vides); Super Find et Fuzzy Find dans de nombreux classeurs; Sélection aléatoire ...
  • Copie exacte Plusieurs cellules sans changer la référence de formule; Créer automatiquement des références à plusieurs feuilles; Insérer des puces, Cases à cocher et plus encore ...
  • Extrait du texte, Ajouter du texte, Supprimer par position, Supprimer l'espace; Créer et imprimer des sous-totaux de pagination; Conversion entre le contenu et les commentaires des cellulesplus
  • Super filtre (enregistrer et appliquer des schémas de filtrage à d'autres feuilles); Tri avancé par mois / semaine / jour, fréquence et plus; Filtre spécial par gras, italique ...
  • Combiner des classeurs et des feuilles de travail; Fusionner les tableaux en fonction des colonnes clés; Diviser les données en plusieurs feuilles; Conversion par lots xls, xlsx et PDFplus
  • Plus de 300 fonctionnalités puissantes. Prend en charge Office / Excel 2007-2019 et 365. Prend en charge toutes les langues. Déploiement facile dans votre entreprise ou organisation. Essai gratuit de 30 jours. Garantie de remboursement de 60 jours.
onglet kte 201905

Office Tab apporte une interface à onglets à Office et simplifie considérablement votre travail

  • Activer l'édition et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
  • Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
  • Augmente votre productivité de 50% et réduit des centaines de clics de souris chaque jour!
bas de cabine
Commentaires (12)
Pas encore de notes. Soyez le premier à évaluer!
Ce commentaire a été minimisé par le modérateur sur le site
Existe-t-il une version de ceci qui fonctionne pour les documents Word?
Ce commentaire a été minimisé par le modérateur sur le site
J'ai ceci ci-dessous, qui fonctionne parfaitement pour enregistrer le fichier avec l'horodatage, MAIS ne fonctionnerait pas si vous le modifiez pour ajouter de l'heure -> nbre = Format (Maintenant, "aaaa-mm-jj hh: mm")


nbre = Format(Maintenant, "aaaa-mm-jj")


Application.DisplayAlerts = Faux


ChDir "T:\Centre de distribution"
ActiveWorkbook.SaveAs Filename:="T:\Distribution Center\2. BACKLOG\DC BACKLOG " + nbre + ".xlsx", FileFormat _
:=xlOpenXMLWorkbook, WriteResPassword:="****", CreateBackup:=False



Pouvez-vous s'il vous plaît aider ce qui manque ???....
Ce commentaire a été minimisé par le modérateur sur le site
Vous ne pouvez pas utiliser le caractère ":" dans les noms de fichiers
Ce commentaire a été minimisé par le modérateur sur le site
Vous ne pouvez pas enregistrer de fichiers avec : dans le nom de fichier, si vous le modifiez en nbre = Format (Maintenant, "aaaa-mm-jj hh-mm")
Ce commentaire a été minimisé par le modérateur sur le site
Cher Nathan,
Le code VBA ci-dessous peut aider à ajouter l'horodatage dans le nom de fichier.

Sous test ()
Dim xWb en tant que classeur
Dim xStr As String
Dim xStrOldName As String
Estomper xStrDate en tant que chaîne
Estomper xFileName en tant que chaîne
Dim xFileDlg As FileDialog
Dim i As Variant
Application.DisplayAlerts = Faux
Définir xWb = ActiveWorkbook
xStrOldName = xWb.Name
xStr = Gauche(xStrOldName, Len(xStrOldName) - 5)
xStrDate = Format(Maintenant, "aaaa-mm-jj hh-mm-ss")
Si Droite(xStrAncienNom, 4) = "xlsm" Alors
xFileName = Application.GetSaveAsFilename(xStr & " " & xStrDate, "Excel Macro-Enabled Workbook (*.xlsm),*.xlsm")
autre
xFileName = Application.GetSaveAsFilename(xStr & " " & xStrDate, "Classeur Excel (*.xlsx),*.xlsx")
Si fin
xWb.SaveAs (xFileName)
Application.DisplayAlerts = Vrai
End Sub
Ce commentaire a été minimisé par le modérateur sur le site
Serait-il possible de le modifier pour supprimer l'horodatage précédent et l'enregistrer sous le même répertoire ?
Ce commentaire a été minimisé par le modérateur sur le site
Bonne journée,
Désolé, je ne peux pas vous aider.
Ce commentaire a été minimisé par le modérateur sur le site
Cela fonctionne sauf que lorsque l'utilisateur appuie sur le bouton d'annulation, il crée toujours un fichier appelé "false".
Ce commentaire a été minimisé par le modérateur sur le site
Salut Jason,
Merci de me le rappeler. Les codes sont mis à jour.
Ce commentaire a été minimisé par le modérateur sur le site
Est-il possible d'intégrer le code et de lui indiquer où enregistrer le fichier plutôt que de sélectionner individuellement le chemin d'enregistrement à chaque fois ?
Ce commentaire a été minimisé par le modérateur sur le site
À qui cela concerne,
J'essaie d'impliquer votre code "Code VBA: Enregistrer un nom de fichier Excel avec horodatage (Insérer l'horodatage dans le nom de fichier d'origine)" à https://www.extendoffice.com/documents/excel/4413-excel-timestamp-filename.html. MAIS il s'arrête au nouveau nom de fichier avec l'horodatage de la boîte de dialogue Enregistrer sous. Si je veux enregistrer automatiquement en continu après la boîte de dialogue Enregistrer sous, fermez tous les classeurs et fermez l'application. Quel code VBA recommandez-vous pour terminer ce travail? S'il vous plaît aider.

Veuillez me répondre à misterxyz123@gmail
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour Monsieur X,
Après avoir exécuté le code, tous les classeurs ouverts (à l'exception du classeur en cours d'utilisation) sont enregistrés en tant que nouveaux fichiers avec horodatage suivi du nom de fichier d'origine, puis fermés automatiquement. Veuillez essayer. Merci.
Veuillez spécifier un dossier pour enregistrer les fichiers dans cette ligne : xPath = "C:\Users\Win10x64Test\Desktop\fichier avec horodatage\"
Sub AddTimestampToFileName()
    'Updated by Extendoffice 20220826
    Dim xWb As Workbook
    Dim xStr As String
    Dim xPath As String
    Dim xStrDate As String
    Dim xFileName As String
    Application.DisplayAlerts = False
    
    
    xPath = "C:\Users\Win10x64Test\Desktop\file with timestamp\"
    xFileName = ActiveWorkbook.Name
    xStrDate = " " & Format(Now, "yyyy-mm-dd hh-mm-ss")
    For Each xWb In Workbooks
        If xWb.Name <> xFileName Then
            If Dir(xWb.FullName) <> "" Then
                xStr = Left(xWb.Name, InStrRev(xWb.Name, ".") - 1)
                xWb.SaveAs Filename:=xPath & Replace(xWb.Name, xStr, xStr & xStrDate)
            Else
                xWb.SaveAs Filename:=xPath & xWb.Name & xStrDate & ".xlsx"
            End If
        xWb.Close
        End If
    Next
    
    xStr = Left(xFileName, InStrRev(xFileName, ".") - 1)
    ActiveWorkbook.SaveAs Filename:=xPath & Replace(xFileName, xStr, xStr & xStrDate)
    Application.DisplayAlerts = True
    
End Sub
Il n'y a pas encore de commentaires postés ici
Laisser vos commentaires
Publier en tant qu'invité
×
Évaluez cet article:
0   Personnages
Emplacements suggérés