Sauvegarde Fichier avec date du Jour

  • Initiateur de la discussion williams
  • Date de début
W

williams

Guest
Bonjour à tous,

Je voudrais:

- Ouvrir un classeur Excel " Toto "
- Exécuter une macro de mise à jour
- Fermer le classeur en l'enregistrant sous le nom " Toto du DateDuJour.XLS"

Le tout en automatique, bien evidement sinon se ne serait pas drôle !


Je vous remercie par avance pour vos solutions.
 
@

@+Thierry

Guest
Bonsoir Williams, le Forum

A mettre dans un autre classeur que "Toto"... sinon çà va pas être drôle !!!

Sub OuvrirSauverToto()
Dim WBToto As String
Dim ThePath As String


ThePath = "C:\Mes Documents\Test XLD\"
WBToto = "Toto.xls"

Workbooks.Open ThePath & WBToto

MsgBox "La Macro de Mise à Jour se passe en ce moment"


On Error GoTo ErrorHandler2
With Workbooks("Toto.xls")
.SaveAs ThePath & "Toto Date " & Format(Now, "YYYY-MM-DD")
.Close
End With

Exit Sub
ErrorHandler2:
If Err = 1004 Then
MsgBox "Le Classeur Toto Date " & Format(Now, "YYYY-MM-DD") & " existe déjà et la sauvegarde à été annulée....", vbCritical
Else
MsgBox "Une erreur non gérée c'est produite " & Err.Number & " " & Err.Source & " " & Err.Description
End If

End Sub


IL est entendu que la Macro de mise à jour est à placer à la place du MsgBox "La Macro de Mise à Jour se passe en ce moment"...

Bonne Soirée
@+Thierry
 
R

Robert

Guest
Salut Wiliams, Salut le Forum

Voici le code d'une macro pour la sauvegarde avec date. Tu pourrais rajoute ces quelques lignes à la fin de ta macro de mise à jour.

Public Sub sauvDat()
Dim a As String
Dim nom As String
Dim nouvnom As String
a = Format(Date, "dd-mm-yy") 'defini le format de date ("/" étant interdit dans les noms de fichier)
nom = Application.ActiveWorkbook.Name
nouvnom = Mid(nom, 1, Len(nom) - 4) 'supprime le point et l'extension (.xls)
ActiveWorkbook.SaveAs nouvnom & " du " & a
End Sub

À plus,

Robert
 
R

Robert

Guest
Re salut Williams, Salut Thierry,

Vois-tu Williams, ce mec là, ce Thierry... Il me pourrit la vie depuis que je connais ce site. Mais ça c'est rien, le pire c'est que je l'aime ! (au sens vébéhaesque bien sûr).

Alors fais comme si tu n'avais jamais reçu mes commentaires et écoute ce grand sage génial.

À plus,

Robert
 
@

@+Thierry

Guest
Bonsoir Robert, RE William, le Forum

Hi hi hi, merci Robert c'est gentil et çà me touche.

En fait ta macro est très bien aussi pour le coté gestion de la variable Nom du Fichier en récupérant son nom sans l'extention ".xls".

D'ailleurs en partant de ce principe on pourrait faire un truc comme çà qui peut rendre service à plus d'un :

Dans un classeur "Interface" ou un "Perso.xls" ou carrément une XLA on peut décider de traiter un fichier dans un répertoire en agissant comme ceci :

Sub OnOuvreOnTraiteOnSauveAveLaDateLOL()
Dim TheFile As Variant
Dim ThePath As String
Dim UserDir As String
Dim WB As Workbook

ThePath = "C:\Mes Documents\Test XLD"'<<<< à adapter of course

UserDir = CurDir
ChDir ThePath

TheFile = Application.GetOpenFilename("Excel Files(*.xls),*.xls")
If TheFile = False Then ChDir UserDir: Exit Sub
Set WB = Workbooks.Open(TheFile)

'ici faut faire un truc... une macro qui va écrire un truc dans l'entête...
With WB.Worksheets(1)
.PageSetup.RightHeader = "MAJ le " & Format(Now, "YYYY-MM-DD") & " par " & Application.UserName
End With

On Error GoTo ErrorHandler
With WB
.SaveAs Left(WB.Name, Len(WB.Name) - 4) & "-MAJ-du-" & Format(Now, "YYYY-MM-DD")
.Close
End With

ChDir UserDir
Exit Sub
ErrorHandler:
If Err = 1004 Then
MsgBox "Le Classeur Toto Date " & Format(Now, "YYYY-MM-DD") & " existe déjà et la sauvegarde à été annulée....", vbCritical
Else
MsgBox "Une erreur non gérée c'est produite " & Err.Number & " " & Err.Source & " " & Err.Description
End If
End Sub

On notera que je mets toujours les dates en formats YYYY MM DD bien plus facile à trier pour des noms de fichiers (surtout si il y en a des centaines dans le répertoires...

Bonne Nuit
@+Thierry
 
W

williams

Guest
Merci à tous pour vos réponses, c'est exactement ce que je cherche, vous êtes comment dire......GENIAL !!

Mais.... il me reste Trois soucis:

1: Pouvoir ouvrir le fichier à heure fixe (je vais bien trouver une commande MS-DOS, dans un fichier .BAT, avec tache planifié Windows)

2: Comment passer au travers de la première BOX, " VOULEZ-VOUS ACTIVER LES MACROS.

3: Ma macro Auto_Ouvrir ne fonctionne pas

Merci
 
@

@+Thierry

Guest
Bonjour William, Robert, le Forum

1:) Tu utilises le Task Manager de Windows (Windows / Démarrer Menu => Programmes => Accessoires => Outils Système. Tu peux lancer ton Fichier XLS

2:) Tu mets le niveau de sécurité bas (Excel / Menu Outil => Macro => Sécurité Bas)

3:) Tu utilises une macro WorkBook_Open bien plus pratique voir le GIF mode d'emploi :




Bon Appétit
@+Thierry
 
W

williams

Guest
Merci, c'est tout bon.

Je ne sais pas si c'est le bon endroit, mais ce Site et plus particulièrement ce FORUM est génial !!

Bien plus professionnel que certain site qui se le dise et dont je vais me taire le nom pour éviter la pub.


ENCORE MERCI A TOUS, POUR VOTRE AIDE.
 

Discussions similaires

Statistiques des forums

Discussions
312 209
Messages
2 086 266
Membres
103 167
dernier inscrit
miriame