Heure au format texte?

Bonsoir,

Je rencontre un problème actuellement avec une valeur issue d'une textbox dans laquelle je tape une heure ('14:00" par exemple).Après validation via un bouton de commande la valeur se retranscrit dans un tableau sur une ligne donnée. Sur cette même ligne des formules sont dépendantes de la case dans laquelle est mentionnée l'heure.

Exemple: 18:00 correspondant à 0.75 en format numérique, si heure>=0.75;1;0

Le problème se présente à cet endroit.Les formules ne tiennent pas compte de la valeur de l'heure (0.75 dans l'exemple), je suis obligé de cliquer sur la case et d'appuyer sur 'enter" pour valider le format et ainsi permettre aux formules de fonctionner.Voici le code VBA qui doit peut être poser problème.

Private Sub VALIDER_Click()
Dim ctrl As Control
Dim r As Integer
Dim derligne As Long
With Worksheets("CELLULE QUALITE")
If .Range("C11") = "" Then derligne = 11 Else derligne = .Range("C" & Rows.Count).End(xlUp).Row + 1
For Each ctrl In UserForm1.Controls
r = Val(ctrl.Tag)
Cells(derligne, 6) = Date
If r > 0 Then
If r = 6 Then
.Cells(derligne, r) = CDate(ctrl)
If r = 7 Then .Cells(derligne, r).NumberFormat = "h:mm;@"
Else
.Cells(derligne, r) = ctrl
End If
End If
Next
Sheet1.Cells(derligne, 3) = Val(TextBox6)
End With
End
End Sub

Si quelqu'un voit la solution...

Merci par avance!

Cordialement,

Re bonjour,

Ci-joint, un fichier exemple.La valeur dans la colonne "HEURE R1" étant 14:00, la valeur dans "INDICE SOIR" devrait être "NON" (0 avec un format personnalisé).Si je click sur 14:00 puis sur la barre d'adresse en haute de page et enfin sur entrer, la valeur dans "INDICE SOIR" se modifie correctement!Comment faire pour automatiser tout ca?

Pour reproduire le problème vous pouvez rajouter une ligne en utilisant le formulaire accessible via l'îcone.

Cordialement

8vierge-copie.xlsm (98.00 Ko)

Bonjour,

Peut être une piste à suivre. Utiliser dans vba la fonction cDbl?

Bonsoir,

Je n'arrive absolument pas à comprendre d'où vient le problème.J'ai beau retourner le code dans tous les sens rien y fait. Plusieurs collègues ont validé le format heure utilisé "hh:m;@" mais pas d'avancée...

Bonsoir

Avec un fichier sans mot de passe cela serait mieux

Quel Boulet! Désolé!

Mot de passe: 0 pour le fichier joint

Cordialement

8vierge-copie.xlsm (98.00 Ko)

Bonsoir

Essayes la correction que j'ai faite

Private Sub VALIDER_Click()
Dim ctrl As Control
Dim r As Integer
Dim derligne As Long

  With Worksheets("CELLULE QUALITE")
    If .Range("C11") = "" Then derligne = 11 Else derligne = .Range("C" & Rows.Count).End(xlUp).Row + 1
    For Each ctrl In UserForm1.Controls
      r = Val(ctrl.Tag)
      Cells(derligne, 6) = Date
      If r > 0 Then
        If r = 6 Or r = 8 Then
          .Cells(derligne, r) = CDate(ctrl)
          'If r = 7 Then .Cells(derligne, r).NumberFormat = "h:mm;@"
        Else
          .Cells(derligne, r) = ctrl
        End If
      End If
    Next
    Sheet1.Cells(derligne, 3) = Val(TextBox6)
  End With
  End
End Sub

Remarque: Le test (IF r = 7) sur la ligne que je t'ai mise en remarque était toujours faux car tu es déjà dans la condition r = 6 (r ne peut pas être 6 et 7 à la fois)

Bonsoir Banzai,

Merci beaucoup c'est parfait. La petite explication qui va avec me permet de mieux comprendre.

Merci encore

Amicalement

Rechercher des sujets similaires à "heure format texte"