Probleme incompatibilité type horaire

Caranth59

XLDnaute Nouveau
Bonjour à tous et à toute =),

je viens d'arriver sur le forum et j'ai me débrouille assez bien en VBA. Je vous expose mon projet Excel, le fichier-joint est un fichier permettant de gérer mes horaires durant l'année. Pour éviter des gestes répétitifs, je me suis lancer dans la création de l'interface, j'arrive à enregistrer mes horaires jusque la pas de problème. Mais un moment donnée j'ai voulu ajouter la fonction absence, cette fonction a pour but de signaler mon absence dans la journée. Je saisi alors mon horaire de départ et de retour, souhaitant que ça se décompte sur ma journée de travail contenu dans une cellule.

Mais en voulant calculer la nouvelle valeur de ma journée de travail, je reçois un message d'erreur me signalant une incompatibilité type.

Voici le code du calcul de ma journée de travail avec l'instruction ou le problème apparaît.

Code:
Dim dernligne As Long
Dim dat As Date
Dim i As Long
Dim z As Long
Dim colonne As Long
Dim journée As String
Dim mot As String
Dim valeur1 [COLOR="#00FF00"]' les trois variables qui suivent sont des variables de test pour m'aider à voir les valeurs durant le        déroulement du programme[/COLOR]
Dim valeur2
Dim test

If TextBox4.Text < "12:30" Then
    mot = "APREM"
Else
    
    mot = "MATIN"
End If
colonne = Cells(2, Cells.Columns.Count).End(xlToLeft).Column + 1
dernligne = Range("B" & Rows.Count).End(xlUp).Row + 1
    For i = 2 To colonne
            For z = 2 To dernligne
                dat = Format(Cells(z, i).Value, ("dddddd"))
                    If dat = TextBox1 Then
                        For j = 2 To dernligne
                            journée = Cells(j, "B")
                                If journée = mot Then
                                    Cells(j + 2, "B").Value = "ABSENCE"
                                   valeur1 = CDate(TextBox4.Text)
                                   valeur2 = CDate(TextBox9.Text)
                                   valeur1 = Format(valeur1, ("hh:mm"))
                                   valeur2 = Format(valeur2, ("hh:mm"))
[U]                                   [COLOR="#00FF00"]probléme 1[/COLOR]
                              Cells(j + 2, i).Value = Format(valeur2 - valeur1, ("hh:mm"))[/U]
                                   For k = 2 To dernligne
                                        If Cells(k, "B").Value = "Total journée" Then
[U]                                            TextBox12 = Cells(k, i).Value 'problème 2 ^^
                                           test = CDate(TextBox12.Text)
                                           Cells(k, i).Value = Format(test - valeur2 - valeur1, "hh:mm")[/U]
                                       End If
                                    Next k
                                    GoTo Line
                                End If
                        Next j
                    End If
Line:            Next z
    Next i
    
End Sub

Merci d'avance bonne journée à vous.
 

Pièces jointes

  • Horaires Jan-dec 2015 .xlsm
    79.7 KB · Affichages: 20

Dranreb

XLDnaute Barbatruc
Re : Probleme incompatibilité type horaire

Bonsoir.

Il va falloir faire le ménage dans tous ces Format complètement nuisibles, en considérant ces 3 points :

1) — La fonction CDate sert à convertir un texte en Date c'est à dire en une durée en jours.
2) — La fonction Format sert à convertir des nombres (durées ou autres) en textes, impropres aux calculs dans le cas général.
3) — Les valeurs de cellules ne requièrent que des nombres et non des textes pour stocker des durées.
 

Statistiques des forums

Discussions
311 725
Messages
2 081 941
Membres
101 847
dernier inscrit
Djigbenou