Modifier une valeur avec un format spécifique dans une listbox

marie49

XLDnaute Occasionnel
Bonjour,

Je voudrai permettre à l'utilisateur de modifier une valeur dans une table de correspondance. Cette valeur correspond à des heures avec un format bien particulier '[hh]"h"mm.

Je vous envoie un petit exemple de ce que j'ai déjà réalisé.

Quelle est la meilleure méthode à utiliser?
- faire une saisie différente pour heure et minute donc avoir 2 textbox
- vérifier la saisie faite par l'utilisateur sur une seule textbox
- ou autre chose

Merci de vos réponses
Marie
 

Pièces jointes

  • Classeur2.xls
    35 KB · Affichages: 77
  • Classeur2.xls
    35 KB · Affichages: 81
  • Classeur2.xls
    35 KB · Affichages: 85

marie49

XLDnaute Occasionnel
Re : Modifier une valeur avec un format spécifique dans une listbox

UP

Personne n'a de conseils??
J'ai fait le tour du forum : j'ai l'impression qu'il est préférable de scinder les heures et les minutes et ensuite de rajouter le séparateur!!!

Marie
 

tototiti2008

XLDnaute Barbatruc
Re : Modifier une valeur avec un format spécifique dans une listbox

Bonjour marie49,

C'est un peu comme tu veux. Si tu passes par 2 textbox, tu devras vérifier la cohérence des valeurs dans les 2, si tu passes par 1 tu devras vérifier qu'elle contient bien un "h" et que les valeurs de part et d'autre sont cohérentes...
 

marie49

XLDnaute Occasionnel
Re : Modifier une valeur avec un format spécifique dans une listbox

Bonjour,

Je reviens sur ce post car je bloque pour tester la valeur au format "00h00".

La vérification du numérique ne passe pas.
Voici ce que j'ai fait :

Code:
Private Sub TBHeures_Change()

Dim ValeurHoraire As String


'MsgBox (ValeurHoraire)
'Stop
If ListeUE.List(ListeUE.ListIndex, 1) <> -1 Then
    ValeurHoraire = TBHeures.Value
    If InStr(ValeurHoraire, "h") = 0 Then
        MsgBox ("Veuillez compléter les horaires au format 'xxhyy'. xx et yy sont des nombres sur 2 chiffres")
    Else
        MsgBox (Left(ValeurHoraire, InStr(ValeurHoraire, "h") - 1))
        If TypeName(Left(ValeurHoraire, InStr(ValeurHoraire, "h") - 1)) = "string" Or TypeName(Right(ValeurHoraire, Len(ValeurHoraire) - InStr(ValeurHoraire, "h"))) = "string" Then
            MsgBox ("Veuillez compléter les horaires au format 'xxhyy'. xx et yy sont des nombres sur 2 chiffres.")
        Else
            ListeUE.List(ListeUE.ListIndex, 1) = TBHeures.Value
        End If
        MsgBox (Right(ValeurHoraire, Len(ValeurHoraire) - InStr(ValeurHoraire, "h")))
    End If
Else
    MsgBox ("Sélectionnez une ligne dans la liste précédente...")
End If

End Sub

J'ai testé avec not isnumeric, c'est pareil

Avez-vous une idée?
Marie
 

roro69

XLDnaute Impliqué
Re : Modifier une valeur avec un format spécifique dans une listbox

Bonjour
Peut etre peut tu tester a la sorite du textbox comme ceci:
Private Sub TBHeures_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
If IsNumeric(TBHeures.Text) Then
TBHeures.Text = Format(TBHeures.Text, "0#:##")
End If
If Not IsDate(TBHeures.Text) Then
MsgBox "heure ioncohérente"
Cancel = True
End If
End Sub
A++
 

Discussions similaires

Statistiques des forums

Discussions
312 438
Messages
2 088 410
Membres
103 845
dernier inscrit
anasabir2024