Condition sur Format(Now(), "dd-mm-yyyy")

mikael2235

XLDnaute Occasionnel
Bonjour à tous,

Bref descriptif, j’ai fais une macro, qui est utilisée plusieurs fois par jour, c’est à dire à chaque moulage de pièces. L’opérateur utilise la macro une heure après l’heure de prélèvement. Dans un UserForm, il indique en Text Box1 l’heure de prélèvement, et en TextBox2 les minutes.

A la fin d’une macro, j’enregistre, 2 onglets, dans un autre fichier avec comme nom de fichier, une partie fixe, et ensuite la date + heure de prélèvement par
Code:
« dd-mm-yy » & "-" & UF_BoitC_C216.TextBox1.Value & "-" & UF_BoitC_C216.TextBox2.Value.

Code:
    ActiveWorkbook.SaveAs FileName:= _
        chemin_sauvegarde_rapport & "3D_BoitC_C216____" & Format(Now(), "dd-mm-yyyy") & "-" & UF_BoitC_C216.TextBox1.Value & "-" & UF_BoitC_C216.TextBox2.Value & ".xls", FileFormat:= _
        xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
        , CreateBackup:=False


« dd-mm-yy » me renvoie la date du jour. Or si le prélèvement a eu lieu à 23h10, l’utilisation de la macro va se faire à +1h, donc à 00h10, et la date sera celle du lendemain du prélèvement.

Je souhaiterais donc faire la condition suivante : SI TextBox1.Value = 23 ALORS la valeur dd-mm-yy doit être « dd-1 »-mm-yy.

Je ne vois pas comment le faire ici :
Code:
& Format(Now(), "dd-mm-yyyy")

Merci. Mikael
 

mikael2235

XLDnaute Occasionnel
Re : Condition sur Format(Now(), "dd-mm-yyyy")

J'ai essayé ceci, mais ça ne fonctionne pas, il me met toujours la date du jour.

Code:
    If Val(TextBox1) = 23 Then
    datex = Format(Now() - 1, "dd-mm-yyyy") ' pour prendre le jour précèdent
    End If
    If Val(TextBox1) < 23 Then
    datex = Format(Now(), "dd-mm-yyyy") ' pour prendre le jour en cours
    End If
         
    ActiveWorkbook.SaveAs FileName:= _
        chemin_sauvegarde_rapport & "3D_BoitC_C216____" & datex & "-" & UF_BoitC_C216.TextBox1.Value & "-" & UF_BoitC_C216.TextBox2.Value & ".xls", FileFormat:= _
        xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
        , CreateBackup:=False
    ActiveWindow.Close
 

pierrejean

XLDnaute Barbatruc
Re : Condition sur Format(Now(), "dd-mm-yyyy")

Re

Vois le fichier ci-joint
mets en textbox successivement 22:30:00 puis 23:30:00 et clique sur le bouton apres chaque mis à jour
Si tu n'arrive pas adapter sur ton fichier poste une version epurée et on regardera
 

Pièces jointes

  • mikael.zip
    8 KB · Affichages: 36
  • mikael.zip
    8 KB · Affichages: 37
  • mikael.zip
    8 KB · Affichages: 35

Pierrot93

XLDnaute Barbatruc
Re : Condition sur Format(Now(), "dd-mm-yyyy")

Bonjour Mikael, PierreJean:)

peut être déclarée ta variable "datex" en public, voir ci-dessous à placer sur la première ligne d'un module standard.

Code:
Public datex As Date

bon après midi
@+
 

mikael2235

XLDnaute Occasionnel
Re : Condition sur Format(Now(), "dd-mm-yyyy")

Bonjour Mikael, PierreJean:)

peut être déclarée ta variable "datex" en public, voir ci-dessous à placer sur la première ligne d'un module standard.

Code:
Public datex As Date

bon après midi
@+

Merci Pierrot93, apprament ça fonctionne mais ma datex est au format 02/08/2010, alors que mon code précise bien des -
Code:
If Val(TextBox1) >= 23 Then
   datex = Format(Now() - 1, "dd-mm-yyyy") ' pour prendre le jour précèdent
End If
If Val(TextBox1) < 23 Then
   datex = Format(Now(), "dd-mm-yyyy") ' pour prendre le jour en cours
End If

alors quand je fais "enregistrer sous" pour ce classeur avec la date et des /. la macro plante !
 

Pierrot93

XLDnaute Barbatruc
Re : Condition sur Format(Now(), "dd-mm-yyyy")

Re,

c'est une variable de type "date", donc elle a le format date reconnu par windows... Je pense qu'il faut formater lors de l'enregistrement

Code:
 ActiveWorkbook.SaveAs "ton nom" & Format(datex , "dd-mm-yyyy")

@+
 

Discussions similaires

  • Résolu(e)
Microsoft 365 userform
Réponses
4
Affichages
339

Statistiques des forums

Discussions
312 413
Messages
2 088 200
Membres
103 761
dernier inscrit
rouazali