NumberFormat

Résolu/Fermé
Marcos Y Messages postés 96 Date d'inscription jeudi 23 janvier 2014 Statut Membre Dernière intervention 17 juillet 2022 - 7 sept. 2015 à 10:47
Marcos Y Messages postés 96 Date d'inscription jeudi 23 janvier 2014 Statut Membre Dernière intervention 17 juillet 2022 - 7 sept. 2015 à 15:01
Bonjour,

Je suis en train d'améliorer un fichier Excel qui gère mes heures de pointage au travail. Pour cela, j'ai créé une Macro afin de paramétrer le classeur. Elle permettra de renseigner, au moyen d'un UserForm, les données nécessaires pour les calculs, sur un onglet masqué appelé "paramètres".

Voici le code du bouton de validation de mon UserForm (Label4 et Label5 sont des messages d'erreur) :

Private Sub CommandButton1_Click()

If IsDate(TextBox1.Text) = False Then
Label4.Visible = True
Exit Sub
End If
If IsDate(TextBox2.Text) = False Then
Label5.Visible = True
Exit Sub
End If
With Range("journée_contractuelle")
.Value = TextBox1
.NumberFormat = "[h]:mm"
End With
With Range("pause_minimum")
.Value = TextBox2
.NumberFormat = "[h]:mm"
End With

Range("type_de_contrat").Value = ComboBox1.Text
UserForm1.Hide
End Sub


Tout ça fonctionne assez bien, sauf que mes cellules "journée_contractuelle" et "pause_minimum" n'apparaissent pas formatées comme indiqué.

Il semble que le "NumberFormat" n'est pas appliqué.

Comment faire ?

Merci d'avance pour vos réponses

1 réponse

ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
7 sept. 2015 à 12:08
Bonjour Marcos, bonjour le forum,

Peut-être comme ça :

Private Sub CommandButton1_Click()

If IsDate(TextBox1.Text) = False Then
    Label4.Visible = True
    Exit Sub
End If
If IsDate(TextBox2.Text) = False Then
    Label5.Visible = True
    Exit Sub
End If
With Range("journée_contractuelle")
    .Value = TimeSerial(Hour(TextBox1.Value), Minute(TextBox1.Value), Second(TextBox1.Value))
    .NumberFormat = "[h]:mm"
End With
With Range("pause_minimum")
    .Value = TimeSerial(Hour(TextBox2.Value), Minute(TextBox2.Value), Second(TextBox2.Value))
    .NumberFormat = "[h]:mm"
End With
Range("type_de_contrat").Value = ComboBox1.Text
UserForm1.Hide
End Sub

0
Marcos Y Messages postés 96 Date d'inscription jeudi 23 janvier 2014 Statut Membre Dernière intervention 17 juillet 2022 6
7 sept. 2015 à 15:01
Merci ThauTheme !

Ton code fonctionne parfaitement. Merci pour ton aide.

A bientôt !
0