Petite aide code Enregistrer sous

Mi_

XLDnaute Occasionnel
Bonjour le forum,

Pour Enregistrer Sous forme de fichier une feuille Excel, sous le nom de la cellule B3 assorti à la date du jour, j'utilise le code suivant:

Dim Dossier As String, Fichier As String
With ActiveSheet
Dossier = CStr(.Range('B3').Value)
Fichier = CStr(.Range('B3').Value) & ' ' & Format(Date, 'dd-mm-yyyy')
End With
If Trim(Dossier) = '' Then Exit Sub
If Trim(Fichier) = '' Then Exit Sub
'Sauvegarde
On Error GoTo CreerDossier
Application.DisplayAlerts = False
ActiveSheet.SaveAs 'Chemin\\' & Dossier & '\\' & Fichier & '.xls'
Application.DisplayAlerts = True
' MsgBox 'Ok, c'est enregistré.'

ActiveWorkbook.Save
ActiveWorkbook.Close
Exit Sub

CreerDossier:
If Err.Number = 1004 Then
'Création du dossier
MkDir 'Chemin' & Dossier
Resume
Else
MsgBox 'Erreur : ' & Err.Number & vbLf & Err.Description
End If
Mes questions sont:
1) comment faire pour annuler le lancement de la sauvegarde (du code) si la cellule B3 est vide ?
2) comment faire pour ajouter l'heure de l'enregistrement au nom du fichier ?

Merci d'avance pour toute aide,
Mi
 

2passage

XLDnaute Impliqué
Bonjour,

Oui.. ou alors
1- pour construire le chemin, utilise le format de now() suivant :

Fichier = CStr(.Range('B3').Value) & ' ' & Format(now(), 'dd-mm-yyyy-hh-nn')

2- pour le controle B3, en début de code
if range('B3') = '' then exit sub

A+
 

Mi_

XLDnaute Occasionnel
Re,

Merci Raphou96 et 2passage, vos idées m'ont été très utiles.

J'ajoute une dernière question: comment assigner au fichier sauvegardé le nom de la cellule B3 suivi du nom de la cellule C3 suivi de la date et l'heure ? Pour la date et l'heure je sais déjà, mais est-ce possible d'avoir 17h53 au lieu de 17-53 ?

Encore merci,
Mi
 

Raphou96

XLDnaute Nouveau
Impossible d'avoir les : car c'est un caractère que les fichiers ne peuvent pas avoir.


Pour ta sauvegarde, il sufffit de mettre

ActiveWorkbook.SaveAs Filename:= _
'Ton chemin' & Range('B3') & Range('C3') _
&date &time & '.xls'

Voila bonne journée
 

Mi_

XLDnaute Occasionnel
Raphou96, j'aurais plutôt besoin de modifier la formule

Fichier = CStr(.Range('B3').Value) & ' ' & Format(Now(), 'dd-mm-yyyy hh-mm')

Pour intégrer le nom de la cellule C3.

Concernant le format de l'heure, je ne voulais pas 17:53 mais 17h53. Est-il impossible ?
 

Discussions similaires

Statistiques des forums

Discussions
312 196
Messages
2 086 097
Membres
103 116
dernier inscrit
kutobi87