XL 2019 calcul de date dans textbox

dodineau

XLDnaute Occasionnel
Bonjour à toutes et tous.
quand j'ouvre mon USF j'ai un textbox qui affiche la date du jour.

VB:
Private Sub UserForm_Initialize()
Jour_Calcul = Format(Int(Now()), "dddd dd mmmm yyyy")
End Sub

Le problème que j'ai c'est pour incrémenter le jour. J'ai une erreur incompatibilité de type car en fait le textbox est reconnu en string et non en date.
Code:
Jour_Calcul = DateAdd("d", 1, Jour_Calcul)

Merci pour votre aide.
A+
 
Solution
Bonjour,

Essayez :
VB:
Private Sub RAZ_Click()
   Jour_Calcul = Format(Date, "dddd dd mmmm yyyy")
End Sub

Private Sub UserForm_Initialize()
   Jour_Calcul = Format(Date, "dddd dd mmmm yyyy")
End Sub

Private Sub Jour_Plus_Click()
   Jour_Calcul = Mid(Jour_Calcul, InStr(Jour_Calcul, " ") + 1)
   Jour_Calcul = Format(DateAdd("d", 1, CDate(Jour_Calcul)), "dddd dd mmmm yyyy")
End Sub

Private Sub Jour_Moins_Click()
   Jour_Calcul = Mid(Jour_Calcul, InStr(Jour_Calcul, " ") + 1)
   Jour_Calcul = Format(DateAdd("d", -1, CDate(Jour_Calcul)), "dddd dd mmmm yyyy")
End Sub

Private Sub Mois_Plus_Click()
   Jour_Calcul = Mid(Jour_Calcul, InStr(Jour_Calcul, " ") + 1)
   Jour_Calcul = Format(DateAdd("m", 1, CDate(Jour_Calcul)), "dddd dd mmmm yyyy")...

Staple1600

XLDnaute Barbatruc
Re

Avec tous les indices que je t'avais laissé, tu aurais du arrivé à ceci, non?
VB:
Private Sub UserForm_Initialize()
TextBox1 = Format(DateAdd("d", 1, Date), "dddd dd mmmm yyyy")
End Sub
Et en déduire que ceci peut suffire ;)
VB:
Private Sub UserForm_Initialize()
TextBox1 = Format(Date + 1, "dddd dd mmmm yyyy")
End Sub
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour,

Essayez :
VB:
Private Sub RAZ_Click()
   Jour_Calcul = Format(Date, "dddd dd mmmm yyyy")
End Sub

Private Sub UserForm_Initialize()
   Jour_Calcul = Format(Date, "dddd dd mmmm yyyy")
End Sub

Private Sub Jour_Plus_Click()
   Jour_Calcul = Mid(Jour_Calcul, InStr(Jour_Calcul, " ") + 1)
   Jour_Calcul = Format(DateAdd("d", 1, CDate(Jour_Calcul)), "dddd dd mmmm yyyy")
End Sub

Private Sub Jour_Moins_Click()
   Jour_Calcul = Mid(Jour_Calcul, InStr(Jour_Calcul, " ") + 1)
   Jour_Calcul = Format(DateAdd("d", -1, CDate(Jour_Calcul)), "dddd dd mmmm yyyy")
End Sub

Private Sub Mois_Plus_Click()
   Jour_Calcul = Mid(Jour_Calcul, InStr(Jour_Calcul, " ") + 1)
   Jour_Calcul = Format(DateAdd("m", 1, CDate(Jour_Calcul)), "dddd dd mmmm yyyy")
End Sub

Private Sub Mois_Moins_Click()
   Jour_Calcul = Mid(Jour_Calcul, InStr(Jour_Calcul, " ") + 1)
   Jour_Calcul = Format(DateAdd("m", -1, CDate(Jour_Calcul)), "dddd dd mmmm yyyy")
End Sub

Private Sub An_Plus_Click()
   Jour_Calcul = Mid(Jour_Calcul, InStr(Jour_Calcul, " ") + 1)
   Jour_Calcul = Format(DateAdd("yyyy", 1, CDate(Jour_Calcul)), "dddd dd mmmm yyyy")
End Sub

Private Sub An_Moins_Click()
   Jour_Calcul = Mid(Jour_Calcul, InStr(Jour_Calcul, " ") + 1)
   Jour_Calcul = Format(DateAdd("yyyy", -1, CDate(Jour_Calcul)), "dddd dd mmmm yyyy")
End Sub
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
re
Bonjour a tous
c'est normal vba ne reconnais pas la date formaté avec le jour en lettre il ne peut donc plus être fait d’opération dessus
sensiblement pareil que @mapomme sauf que je passe par une variable date sur la quelle je fait les operations puis injecte dans le textbox
VB:
Dim thedate As Date
Private Sub RAZ_Click()
Jour_Calcul = Int(Now())
End Sub

Private Sub UserForm_Initialize()
thedate = Date
Jour_Calcul = Format(thedate, "dddd dd mmmm yyyy")
End Sub

Private Sub Jour_Plus_Click()
thedate = DateAdd("d", 1, thedate)
Jour_Calcul = Format(thedate, "dddd dd mmmm yyyy")
End Sub

Private Sub Jour_Moins_Click()
thedate = thedate - 1
Jour_Calcul = Format(thedate, "dddd dd mmmm yyyy")
End Sub

Private Sub Mois_Plus_Click()
thedate = DateAdd("m", 1, thedate)
Jour_Calcul = Format(thedate, "dddd dd mmmm yyyy")
End Sub

Private Sub Mois_Moins_Click()
thedate = DateAdd("m", -1, thedate)
Jour_Calcul = Format(thedate, "dddd dd mmmm yyyy")
Jour_Calcul = Format(thedate, "dddd dd mmmm yyyy")
End Sub

Private Sub An_Plus_Click()
thedate = DateAdd("yyyy", 1, thedate)
Jour_Calcul = Format(thedate, "dddd dd mmmm yyyy")
End Sub

Private Sub An_Moins_Click()
thedate = DateAdd("yyyy", -1, thedate)
Jour_Calcul = Format(thedate, "dddd dd mmmm yyyy")
End Sub

Private Sub Quit_Click()
Unload UserForm1
End Sub
 

ChTi160

XLDnaute Barbatruc
Bonsoir les Amis
Histoire de pouvoir vous saluer et Vous présenter mes Meilleurs Vœux pour cette Nouvelle Année !
ce que j'ai mis dans le Code du Userform :
VB:
Option Explicit
Dim Dte As Date

Private Sub UserForm_Initialize()
    Me.Jour_Calcul.Tag = CLng(Date) 'Cf dysorthographie #14
     RAZ_Click
End Sub
Private Sub RAZ_Click()
Me.Jour_Calcul.Tag = CLng(Date) 'Idem
Init "d", 0
End Sub

Private Sub Jour_Plus_Click()
Init "d", 1
End Sub

Private Sub Jour_Moins_Click()
Init "d", -1
End Sub

Private Sub Mois_Plus_Click()
Init "m", 1
End Sub

Private Sub Mois_Moins_Click()
Init "m", -1
End Sub

Private Sub An_Plus_Click()
   Init "yyyy", 1
End Sub

Private Sub An_Moins_Click()
Init "yyyy", -1
End Sub

Private Sub Quit_Click()
Unload UserForm1
End Sub
Private Function Init(StrPas$, ByVal IntPas As Integer)          
     With Me.Jour_Calcul
             Dte = DateAdd(StrPas$, IntPas, .Tag) 'Idem
            .Text = Application.Proper(Format(Dte, "dddd dd mmmm yyyy"))
            .Tag = Dte 'Idem
     End With
End Function
Ainsi la date a récupérer sera toujours dans le Tag du Control "Jour_Calcul"
Bonne fin de Journée
jean marie
 
Dernière édition:

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 086
Messages
2 085 197
Membres
102 814
dernier inscrit
JLGalley