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

XL 2019 Fonction Fin.Mois en vba

patrick2a

XLDnaute Nouveau
Bonjour à tous,
J'ai un formulaire avec 2 textbox.
Dans la première je saisis une date, je voudrais que la seconde affiche la date + 30 jours fin de mois après la sortie de la première.
J'ai essayé avec Application.WorksheetFunction.EOMONTH mais sans succès.

Je vous remercie pour votre collaboration.

Corialement
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Patrick,
Un essai en PJ qui à, l'air de marcher avec :
VB:
Sub Essai()
For L = 2 To 43
    Cells(L, "B") = Application.EoMonth(Cells(L, "A"), 1)
Next L
End Sub
 

Pièces jointes

  • FinMois.xlsm
    13.7 KB · Affichages: 6

patrick2a

XLDnaute Nouveau
Bonjour Sylvanu,
Merci pour votre réponse rapide.
Je voudrais que le calcul se fasse dans latextbox2 de mon formulaire.

Cordialement.
 

Pièces jointes

  • Capture d’écran Formulaire.png
    17.5 KB · Affichages: 15

Dranreb

XLDnaute Barbatruc
Essayez :
VB:
Private Sub TextBox1_Change()
   Dim D As Date
   On Error Resume Next
   D = CDate(TextBox1.Text)
   If Err Then Exit Sub
   TextBox2.Text = DateSerial(Year(D), Month(D) + 1, 0)
   End Sub
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re, Bonjour Dranreb,
Comme quoi une PJ peut être importante.
Votre problème est que le VBA ne connait que le format américain des dates ( mm/dd/yyyy )
Or votre textbox est remplie avec un format européen ( dd/mm/yyyy ), donc ça ne peut pas marcher.
En PJ un essai. Un appui sur Essai ouvre le userform, on rempli la date on appuie sur OK et la date fin de mois s'affiche grâce à :
Code:
Private Sub BOK_Click()
    On Error GoTo Fin
    Dat = TextBox1.Value                                            ' Récupère date de textbox1
    R = Month(Dat) & "/" & Day(Dat) & "/" & Year(Dat)               ' Remet au format américain
    DateFinMois = Format(Application.EoMonth(R, 1), "dd/mm/yyyy")   ' Affiche dat fin de mois format européen
Fin:
End Sub
Evidemment j'ai supposé que vous renriez la date en format 20/04/2022 et non 04/20/2022.
 

Pièces jointes

  • Echéances1.xlsm
    15.3 KB · Affichages: 8
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…