Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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
Bah, si tu le veux, fais le
(faut être un peu curieux dans VBA )
VB:
Private Sub UserForm_Initialize()
Dim Jour_Date As Date, x
TextBox1 = Date
Jour_Date = TextBox1
x = DateAdd("d", 1, Jour_Date)
MsgBox Format(x, "dddd dd mmmm yyyy")
End Sub
 

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
 

dodineau

XLDnaute Occasionnel
Voici mon fichier en exemple.
Quand la date est à mon format personnel ça beugue et quand si on clique sur aujourd'hui la date est au format normal et ça fonctionne.
 

Pièces jointes

  • Dates.xlsm
    22.8 KB · Affichages: 20

Staple1600

XLDnaute Barbatruc
Re

Si cela fonctionne, bah ne conserve que la syntaxe qui fonctionne
(L'exemple que je t'ai soumis au message#7 fonctionne.
Tu as ce test chez toi? Il fonctionne aussi?
(Pour faire ce test, il faut juste un Userform avec un TextBox dessus)
 

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:
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…