Probleme format date listbox

bartelele

XLDnaute Junior
Bonjour à tous,

Voilà j'ai un souci de format date, mais je m'arrache les cheveux et tourne en rond.

Il s'agit d'un outil de gestion de visite médicale.

Lorsque la prochaine visite arrive dans - de 30 jours, le nom de la personne s'affiche dans une listbox, si la visite est en retard elle s'affiche dans un autre listbox.

Mon problème est lorsque je modifie la date de la dernière visite d'un personne (parce qu'il a passé sa visite aujourd'hui, cela s'enregistre dans ma base, mais je me suis aperçu que ca s'enregistre (ou ca se charge) au format MM/DD/YYYY

et donc fausse tous mes indicateurs :(

j'ai essayé plein de truc avec format date et cdate, mais je n'y arrive pas :mad:

si quelqu'un peut m'aider :confused:
 

Pièces jointes

  • classeur1.zip
    38.5 KB · Affichages: 66
  • classeur1.zip
    38.5 KB · Affichages: 68
  • classeur1.zip
    38.5 KB · Affichages: 73

13GIBE59

XLDnaute Accro
Re : Probleme format date listbox

Bonjour bartelele

Je n'ai pas ouvert ton fichier, mais pour le format d'une listbox, la syntaxe est la suivante :

Code:
"Ton résultat" = Format("Ta listbox".Value, "mm/dd/yyyy")

Reviens si cela ne marche pas.
 

jp14

XLDnaute Barbatruc
Re : Probleme format date listbox

Bonjour

Travailler sur des dates n'est pas toujours simple.
Il faut vérifier si la valeur saisie est une date en utilisant la fonction Isdate.
exemple
Code:
Private Sub TB_Visite_medicale_realise_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TB_Visite_medicale_realise = "" Then Exit Sub
If Not IsDate(TB_Visite_medicale_realise) Then
Call MsgBox("Erreur de saisie" _
            & vbCrLf & "La date doit être de la forme jj/mm/aaaa" _
            , vbInformation, Application.Name)

Exit Sub
End If
End Sub

Au niveau de l'enregistrement indiquer que la donnée est une date

Code:
With ActiveWorkbook.Sheets("base")
................
.Cells(Ligne, 12) = CDate(Me.TB_Date_prochaine_visite) & ""
................
End with
L'affichage dépendra du format utilisé.

JP
 

bartelele

XLDnaute Junior
Re : Probleme format date listbox

J'ai pondu ca mais rien n'y fait......

Private Sub TB_Date_prochaine_visite_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)

Dim a As Date
'Demande d'aller en ligne "Fin" de proceudre si une erreur occure
On Error GoTo Fin

'verification si un / car une nombre est une date pour windows
If InStr(TB_Date_prochaine_visite, "/") = 0 Then GoTo Fin

'convertion du textbox en format date souhaité => Si pas une date erreur se produit
Me.TB_Date_prochaine_visite.Text = Format(CDate(TB_Date_prochaine_visite.Text), "dd/mm/yyyy")

'sort du programme si pas d erreur
Exit Sub

'gestion de l'erreur qui est générée par une non date
Fin:
If Not TB_Date_prochaine_visite.Text & "" = "" Then
MsgBox "Le format de la date doit être JJ/MM/AAAA"
Cancel = True
End If

End Sub
 

klin89

XLDnaute Accro
Re: Re : Probleme format date listbox

Bonjour à tous,
Bonjour bartelele,

J'ai pas tout suivi et je m'y perds dans ton formulaire :

Essaie avec datevalue et numberformat

Code:
With .Cells(Ligne, 12)
          .Value = DateValue(TaTextbox)
           .NumberFormat = "ton format"
End With

Klin89
 

jp14

XLDnaute Barbatruc
Re : Probleme format date listbox

Bonsoir

Ci dessous un code à tester.
Les textbox étant du type string, j'ai crée des variables de type date pour les calculs.

Code:
Dim Datepv As Date
Dim datedv As Date


Private Sub TB_Derniere_visite_AfterUpdate()

If Not IsDate(TB_Derniere_visite) Then
    Call MsgBox("Vous devez inscrire une date sous la forme jj/mm/aaaa", vbInformation, Application.Name)
Exit Sub
End If
datedv = CDate(Me.TB_Derniere_visite.Text)
'Me.TB_Derniere_visite.Text =


'additionne le nombre de mois pour obtenir la date prévisionnelle de la prochaine visite

Select Case Me.CB_Frequence
    Case "24 mois"
        Datepv = DateAdd("yyyy", 2, datedv)
        
    Case "12 mois"
        Datepv = DateAdd("yyyy", 1, datedv)
        
    Case "6 mois"
        Datepv = DateAdd("m", 6, datedv)
        
    End Select
    TB_Date_prochaine_visite.Text = Datepv




End Sub

.........................................

Private Sub CommandButton1_Click()
Dim Ligne As Long, C As Range
Set C = Sheets("base").Range("B:B").Find(Me.CB_Nom, lookat:=xlWhole)
If C Is Nothing Then
MsgBox "pas trouvé " & Me.CB_Nom
Exit Sub
End If
Ligne = C.Row
ActiveWorkbook.Sheets("base").Cells(Ligne, 1) = Me.TB_Matricule & ""
ActiveWorkbook.Sheets("base").Cells(Ligne, 2) = Me.TB_Nom & ""
ActiveWorkbook.Sheets("base").Cells(Ligne, 3) = Me.TB_Prenom & ""
ActiveWorkbook.Sheets("base").Cells(Ligne, 4) = Me.TB_Date_Naissance & ""
ActiveWorkbook.Sheets("base").Cells(Ligne, 5) = Me.TB_Anciennete & ""
ActiveWorkbook.Sheets("base").Cells(Ligne, 7) = Me.TB_Service & ""
ActiveWorkbook.Sheets("base").Cells(Ligne, 8) = Me.TB_Division & ""
ActiveWorkbook.Sheets("base").Cells(Ligne, 9) = Me.TB_Etablissement & ""
ActiveWorkbook.Sheets("base").Cells(Ligne, 10) = datedv
ActiveWorkbook.Sheets("base").Cells(Ligne, 11) = Me.CB_Frequence & ""
ActiveWorkbook.Sheets("base").Cells(Ligne, 12) = Datepv
ActiveWorkbook.Sheets("base").Cells(Ligne, 13) = Me.TB_Date_convocation & ""
ActiveWorkbook.Sheets("base").Cells(Ligne, 14) = Me.CB_Cause & ""
ActiveWorkbook.Sheets("base").Cells(Ligne, 15) = Me.TB_Commentaire & ""

Unload UserForm1

End Sub

A modifier en initialisant les variables à l'ouverture de l'usf
JP
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 228
Messages
2 086 417
Membres
103 204
dernier inscrit
alaa20dine01