Probleme Boucle while
Bonjour,
je réalise actuellement un tableau pour mesurer des temps d’arrêts dans l'industrie. Ayant déja réalisé toutes la partie prise des temps je cherhe maintenant à m'occuper de la partie "résultat" et pour cela je crée un tableau qui va récapituler heure par heure un certains nombre d'indicateur.
La macro que je vais mettre à pour but d'arrondir à l'heure sup les heures en cours (par exemple si la prod débute à 07:30: la premiere valeur du tableau est 08:00). Cette premiére partie je l'ai réussit.
J'ai maintenant un probleme sur la boucle while (je me doute que c'est assez simple mais c'est pour le moment la seul fonction que j'ai rencontré qui m'a bloqué...)
La boucle while à pour but de mettre dans la valeur du dessous l'heure suivante
Par exemple si l'heure de début est 07:30
D3 => 08:00
D4=> 09:00
jusqu'a tomber sur l'heure de fin qui est rentré sur excel !
Je vous met la macro que j'ai fait pour le moment :
Sub bt_Heure_Click()
Dim Htest As Date
Dim Hteste As Date
Dim nbMin
Dim MinFin
Dim HeuFin
Htest = Sheets("Interface").Range("D30")
nbMin = Minute(Htest) Mod 60
MinFin = Minute(Htest) - nbMin
HeuFin = Hour(Htest) + 1
Htest = Format(CDate(HeuFin & ":" & MinFin), "h:mm")
Sheets("Résultats").Range("D12") = Htest
Hteste = Sheets("Interface").Range("D32")
nbMin = Minute(Htest) Mod 60
MinFin = Minute(Htest) - nbMin
HeuFin = Hour(Hteste) + 1
Hteste = Format(CDate(HeuFin & ":" & MinFin), "h:mm")
While Htest < Hteste
Sheets("Résultats").Range("D" & Sheets("Résultats").Range("D65536").End(xlUp).Row + 1) = Sheets("Résultats").Range("d" & Sheets("Résultats").Range("D65536").End(xlUp).Row) + 1
Htest = Htest + 1
Wend
End SubSi vous avez des pistes, conseils, explication à me donner je suis preneur !
Merci
Bonsoir,
Sub bt_Heure_Click()
Dim Htest As Date, Hteste As Date, n As Integer
With Worksheets("Interface")
Htest = TimeSerial(Hour(.Range("D30")) + 1, 0, 0)
Hteste = TimeSerial(Hour(.Range("D32")) + 1, 0, 0)
End With
With Worksheets("Résultats")
With .Range("D12")
.NumberFormatLocal = "h:mm"
.Value = Htest
End With
n = .Cells(.Rows.Count, 4).End(xlUp).Row + 1
Htest = Htest + 1 / 24
Do
With .Cells(n, 4)
.NumberFormatLocal = "h:mm"
.Value = Htest
End With
Htest = Htest + 1 / 24
n = n + 1
Loop While Htest < Hteste
End With
End SubCordialement
Bonjour,
merci de ta réponse je pense pas que je serai arrivé à ce stade. Je viens de remarquer que si on rentre une heure avant 12h, la macro met l'heure d'avant et non l'heure d'aprés.
Aurai tu une indication pour me permettre de résoudre encore ce problème ?
merci
Cela ne devrait pas !
Il faudrait un fichier pour voir.
(Mais je ne peux rien promettre car vais être essentiellement indisponible dans la période)