Comparaison des heures
Bonjour à tous,
J'essaye de coder en VBA et je rencontre un problème dans mon code pour comparer des heures. Je dispose de 2 fichiers, et les heures à comparer sont dans des fichiers différents. BREF.
En gros mon soucis est que l'affichage est bien en format heure, c'est à dire HH:MM. Je cherche à faire une comparaison de manière à ne comparer que l'heure et pas les minutes, si on a la même heure, et bien je ferai un calcul, sinon je fais rien. Afin de faire cette comparaison sur les heure, j'ai donc fait un Left et pris les 2 premiers caractères mais ça ne marche pas.
Voici un bout de mon code :
For colonne1 = 3 To 26 'pour boucler sur le fichier et sur les les colonnes de ce fichier
heure = Sheets(5).Cells(4, colonne1).Value 'heure de référence
If Left$(Wb.Worksheets(1).Cells(ligne, 16).Value, 2) = Left$(heure, 2) Then 'c'est ça qui ne marche pas
'MsgBox (Wb.Worksheets(1).Cells(ligne, 29).Value)
'calcul du nombre de départs mensuels
'Sheets(5).Cells(ligne1, colonne1).Value = Sheets(5).Cells(ligne1, colonne1).Value + Wb.Worksheets(1).Cells(ligne, 9).Value * 4 'car 4 semaines dans un mois
End If
Next colonne1
En fait ça ne marche pas ...j'ai fait un Msgbox pour bien voir si la comparaison a bien lieu et voir les données prises....et ça marche pas. J'ai remarqué que les données sont bien affichées en heures, mais malheureusement que je met le format de la cellule qui contient l'heure en standard, j'ai un chiffre du genre 0.42222 par exemple, du coup ça fait que ma comparaison avec les Left$ ne marche pas....en gros ça me compare les 2 premiers caractères de 0.4222 par exemple et pas en format heure et là ça me pause des soucis...car évidemment le code comparaison sera beaucoup plus compliqué...
Quelqu'un peut il me donner une astuce s'il vous plait, pour pouvoir comparer en format heure?
Merci beaucoup !
Bonjour Eléphant
Essaye comme ceci
Dim Heure As Integer
For colonne1 = 3 To 26 'pour boucler sur le fichier et sur les les colonnes de ce fichier
Heure = Hour(Sheets(5).Cells(4, colonne1).Value) 'heure de référence
If Hour(Wb.Worksheets(1).Cells(ligne, 16).Value) = Heure Then 'c'est ça qui ne marche pas
MsgBox (Wb.Worksheets(1).Cells(ligne, 29).Value)
'calcul du nombre de départs mensuels
'Sheets(5).Cells(ligne1, colonne1).Value = Sheets(5).Cells(ligne1, colonne1).Value + Wb.Worksheets(1).Cells(ligne, 9).Value * 4 'car 4 semaines dans un mois
End If
Next colonne1
A+
Merci beaucoup !!!!!