Problème de date : enregistrer et envoi mail.

Angy1105

XLDnaute Junior
Problème de date lors de l'enregistrement.

Bonjour à tous,

J'ai un petit souci lorsque je veux enregistrer mon fichier à une date donnée, à l'aide d'un userform, il s'enregistre à la date du jour...
Voici le code que j'utilise :

Sub CréerEnregistrement()

Application.DisplayAlerts = False
Dossier = Worksheets("Infos").Range("B1").Value
ChDir Dossier
ActiveSheet.Unprotect Password:="****"
Worksheets("Trame").Range("D3").Value = Now()
Worksheets("Infos").Range("D2").Value = Worksheets("Trame").Range("D5").Value
Worksheets("Infos").Range("D2").Replace What:=" ", Replacement:="_"
Worksheets("Trame").Range("B2").Value = Dossier & "Service" & Worksheets("Infos").Range("B2") & "_" & "IGP_Bâtiment" & Worksheets("Trame").Range("D4").Value & "_" & _
Worksheets("Infos").Range("D2").Value & "_" & Mid(Now(), 7, 4) & Mid(Now(), 4, 2) & Left(Now(), 2) & ".xls"
Worksheets("Questions").Delete
ActiveSheet.Protect Password:="****", DrawingObjects:=True, Contents:=True, Scenarios:=True
Application.DisplayAlerts = True
ActiveWorkbook.SaveAs Filename:=Worksheets("Trame").Range("B2").Value
msg = MsgBox("L'IGP a été enregistrée sous le nom : " & Worksheets("Trame").Range("B2").Value, vbInformation, "IGP enregistrée !")
End Sub

Je sais que c'est la ligne Worksheets("Trame").Range("D3").Value = Now() qui coince alors j'ai essayé de changer Now() par l'emplacement de la date dans mon fichier mais sans succès.

Je ne sais pas par quoi remplacer Now pour que ça marche.

Je vous joins un fichier test pour plus d'explication.
En attendant, je continue de chercher sur le forum, je vais peut-être trouver quelque chose qui me convient.

Bonne journée à tous.
 

Pièces jointes

  • Fichier.zip
    40.6 KB · Affichages: 33
  • Fichier.zip
    40.6 KB · Affichages: 30
  • Fichier.zip
    40.6 KB · Affichages: 33
Dernière édition:

PMO2

XLDnaute Accro
Re : Problème de date : enregistrer et envoi mail.

Bonjour,

A tout hasard essayez avec ce code modifié

Code:
Sub CréerEnregistrement()
Dim TRA As Worksheet
Dim INF As Worksheet
Dim A$
Dim maDate As Date

Application.DisplayAlerts = False
Set INF = Worksheets("Infos")
Dossier = INF.Range("B1").Value
ChDir Dossier
ActiveSheet.Unprotect Password:="****"

maDate = #3/29/1956#   'je n'ai pas compris où vous péchez la date, aussi je la fabrique

A$ = Format(maDate, "yyyymmdd")
Set TRA = Worksheets("Trame")
TRA.Range("C3").Value = maDate
INF.Range("D2").Value = TRA.Range("C5").Value
INF.Range("D2").Replace What:=" ", Replacement:="_"
TRA.Range("B2").Value = Dossier & "Service" & INF.Range("B2") & "_" & "IGP_Bâtiment" & TRA.Range("C4").Value & "_" & _
    INF.Range("D2").Value & "_" & A$ & ".xls"
Worksheets("Questions").Delete
ActiveSheet.Protect Password:="****", DrawingObjects:=True, Contents:=True, Scenarios:=True
Application.DisplayAlerts = True
ActiveWorkbook.SaveAs Filename:=TRA.Range("B2").Value
msg = MsgBox("L'IGP a été enregistrée sous le nom : " & TRA.Range("B2").Value, vbInformation, "IGP enregistrée !")
End Sub

Comme je n'ai pas compris d'où sort la date, j'en ai fabriqué une.

Cordialement.

PMO
Patrick Morange
 

Angy1105

XLDnaute Junior
Re : Problème de date : enregistrer et envoi mail.

Bonjour PMO 2,

Je récupère la date sur la feuille Trame, cellule D3.
Votre code marche avec la date que vous avez fabriqué.
Je vais voir comment je peux faire pour mettre la date que je veux.

Je vous remercie bonne journée à tous.

Angy
 

Angy1105

XLDnaute Junior
Re : Problème de date lors de l'enregistrement

Bonjour à tous.

J'ai beau cherché l'erreur je ne la trouve pas...
Je ne trouve pas le code que je veux sur le forum et j'ai essayé de modifier ma macro, sans succès.

Quelqu'un peut-il m'aider ?

Je vais continuer à chercher sur le forum.

Bonne journée à tous.
 

Angy1105

XLDnaute Junior
Re : Problème de date : enregistrer et envoi mail.

Bonjour le forum,

Je suis entrain de plancher sur mon problème de date que j'ai dans mon fichier mais je ne trouve pas la solution.
Celle de PMO 2 marche bien mais pour la date donnée : 29 mars 1956.

Je souhaiterais que la date inscrite en C3 soit la date d'enregistrement du document or actuellement la date d'enregistrement est la date du jour.

Vous me direz que c'est normal car la date = Now() dans mon fichier mais je ne sais pas par quoi le remplacer.

Est-il possible de m'aider ?

Bonne après-midi.
 

Angy1105

XLDnaute Junior
Re : Problème de date : enregistrer et envoi mail.

Rebonjour,

J'ai réussi à modifier la date mais j'ai une erreur dans ma macro

PHP:
Sub CréerEnregistrement()
    
    Application.DisplayAlerts = False
    Dossier = Worksheets("Infos").Range("B1").Value
    ChDir Dossier
    ActiveSheet.Unprotect Password:="SSE"
    Worksheets("Infos").Range("F1").Value = Worksheets("Trame").Range("D3").Value
    Worksheets("Infos").Range("D2").Value = Worksheets("Trame").Range("D5").Value
    Worksheets("Infos").Range("D2").Replace What:=" ", Replacement:="_"
    Worksheets("Trame").Range("B2").Value = Dossier & "Service" & Worksheets("Infos").Range("B2") & "_" & "IGP_Bâtiment" & Worksheets("Trame").Range("D4").Value & "_" & _
        Worksheets("Infos").Range("D2").Value & "_" & Worksheets("Infos").Range("F1").Value & ".xls"
    Worksheets("Questions").Delete
    ActiveSheet.Protect Password:="SSE", DrawingObjects:=True, Contents:=True, Scenarios:=True
    Application.DisplayAlerts = True
    ActiveWorkbook.SaveAs Filename:=Worksheets("Trame").Range("B2").Value
    msg = MsgBox("L'IGP a été enregistrée sous le nom : " & Worksheets("Trame").Range("B2").Value, vbInformation, "IGP enregistrée !")
End Sub

L'erreur provient de la phrase :
PHP:
 ActiveWorkbook.SaveAs Filename:=Worksheets("Trame").Range("B2").Value

Je ne comprend pas, la cellule B2 correspond au chemin d'accès du fichier que je souhaite enregistrer.

J'aurais besoin de vos lumières... Car je sombre dans l'obscurité,:eek:!!!

Bonne après-midi.
 

James007

XLDnaute Barbatruc
Re : Problème de date : enregistrer et envoi mail.

Bonjour,


Dans ton code VBA, pour avoir la date du jour il suffit d'écrire
Code:
Date
Quant au nom d'un fichier, il faut qu'il soit complet... donc ilt te faut utiliser la concaténation de plusieurs strings dont le chemin d'accès, le nom, la date, la version, etc ...
Pour le string de la date, il te faut auparavant décider de son format avec la fonction Format ( ta date, ton format de date )
J'espère avoir été assez clair ...

A +
 

Angy1105

XLDnaute Junior
Re : Problème de date : enregistrer et envoi mail.

Je ne veux pas la date du jour mais la date que l'utilisateur écrit dans la cellule D3 de mon fichier.

Je suis novice en VBA...
Si j'ai bien compris ça reviendrai à reprendre le code de PMO2 (ci-dessus). Mais le code pour la date de me convient pas.

Voici un aperçu de mon fichier
Pour infos, je n'ai réalisé que la partie transfert de données et fait des améliorations, ce n'est pas moi qui ai conçu le fichier.

J'espère que vous y verrez plus clair.

Bonne journée.
 

Pièces jointes

  • TRAME IGP.zip
    41.7 KB · Affichages: 29
  • TRAME IGP.zip
    41.7 KB · Affichages: 28
  • TRAME IGP.zip
    41.7 KB · Affichages: 30
Dernière édition:

Angy1105

XLDnaute Junior
Re : Problème de date : enregistrer et envoi mail.

Ca y est, j'ai réussi!!!
J'ai repris le code de PMO2 et j'ai mis à la place de #3/29/1956#, l'emplacement de ma date.
Pfff, quelle perte de temps pour une si petite erreur...

Bref, merci encore à PMO2 et à James007 de m'avoir aider, heureusement que des personnes comme vous existent...

Bonne soirée et très certainement à bientôt sur le forum.
 

Discussions similaires

Statistiques des forums

Discussions
312 216
Messages
2 086 348
Membres
103 194
dernier inscrit
rtison