J'ai crée une petite fonction qui me permet de dater des evenements
dans une colonnesour le format "1005" pour dix heures et 5 minutes
,ensuite chaque cellule de cette colonne est incremente de 10
minutes,mais quand j'arrive a "2359" je voudrais basculer sur "0009"
Auriez vous une petite idée pour resoudre ce petit contr temps
J'ai crée une petite fonction qui me permet de dater des evenements
dans une colonnesour le format "1005" pour dix heures et 5 minutes
,ensuite chaque cellule de cette colonne est incremente de 10
minutes,mais quand j'arrive a "2359" je voudrais basculer sur "0009"
Auriez vous une petite idée pour resoudre ce petit contr temps
J'ai crée une petite fonction qui me permet de dater des evenements
dans une colonnesour le format "1005" pour dix heures et 5 minutes
,ensuite chaque cellule de cette colonne est incremente de 10
minutes,mais quand j'arrive a "2359" je voudrais basculer sur "0009"
Auriez vous une petite idée pour resoudre ce petit contr temps
Bonjour Hugo,
Suppose que tu as dans la cellule A1 : 2359 pour 23 hres 59 minutes
et que tu veux ajouter 10 hres 10 minutes à cette valeur :
'Extrait les minutes
m = Right(Range("A1"), 2)
'Extrait les heures
h = Application.Substitute(Range("A1"), m, "")
'Fait la somme
Range("A1") = Format(TimeValue(h & ":" & m) + TimeValue("10:10"), "HMM")
range("A1") = 1009
"hugo2009" a écrit dans le message de groupe de
discussion :
Bonjour ,
J'ai crée une petite fonction qui me permet de dater des evenements dans
une colonnesour le format "1005" pour dix heures et 5 minutes ,ensuite chaque
cellule de cette colonne est incremente de 10 minutes,mais quand j'arrive a
"2359" je voudrais basculer sur "0009" Auriez vous une petite idée pour
resoudre ce petit contr temps
D'avance merci
Cordialement
hugo
Ci joint mon code
Private Sub CommandButton4_Click()
'HOroDateur
'formatage et remplissage des Heure de validation,Chargement,expedition au
format =>"1000"
heure = Hour(Time)
Minute1 = Minute(Time)
Select Case Minute1
Case Is < 10
Minute1 = "0" & Minute1
End Select
With ThisWorkbook.Sheets("Visites_RC")
..[L6] = heure & Minute1
..[AA6] = heure & Minute1 + 10
..[R6] = heure & Minute1 + 20
End With
Set aa = ThisWorkbook.Sheets("Visites_RC").Range("aa6")
If Val(Right(aa, 2)) >= 59 Then aa = aa + 50
Sheets("Visites_RC").Range("aa6") = aa
Set bb = ThisWorkbook.Sheets("Visites_RC").Range("r6")
If Val(Right(bb, 2)) >= 59 Then bb = bb + 50
Sheets("Visites_RC").Range("r6") = bb
Dim test
test = Array(10, 16, 25) 'Nbre decale de Colonne entre la Colonne Ref
For i = 1 To 3
colonne = test(i)
Set Visite = ThisWorkbook.Sheets("Visites_RC")
x = Visite.Range("b6")
DeniereLigne = Visite.Range("b6").End(xlDown).Row
For Each c In Visite.Range("b7:b" & DeniereLigne)
If c.Value <> x Then
If Val(Right(CStr(c.Offset(-1, colonne)), 2)) >= 50 Then
c.Offset(, colonne) = c.Offset(-1, colonne) + 50
Else: c.Offset(, colonne) = c.Offset(-1, colonne) + 10
End If
Else
c.Offset(, colonne) = c.Offset(-1, colonne)
End If
x = c.Value
Next
Next
Sheets("Visites_RC").Select
End Sub
Bonjour Hugo,
Suppose que tu as dans la cellule A1 : 2359 pour 23 hres 59 minutes
et que tu veux ajouter 10 hres 10 minutes à cette valeur :
'Extrait les minutes
m = Right(Range("A1"), 2)
'Extrait les heures
h = Application.Substitute(Range("A1"), m, "")
'Fait la somme
Range("A1") = Format(TimeValue(h & ":" & m) + TimeValue("10:10"), "HMM")
range("A1") = 1009
"hugo2009" <hugo2009@discussions.microsoft.com> a écrit dans le message de groupe de
discussion : A3EC0C23-EB22-4B1F-8B2F-81B62F8E6A64@microsoft.com...
Bonjour ,
J'ai crée une petite fonction qui me permet de dater des evenements dans
une colonnesour le format "1005" pour dix heures et 5 minutes ,ensuite chaque
cellule de cette colonne est incremente de 10 minutes,mais quand j'arrive a
"2359" je voudrais basculer sur "0009" Auriez vous une petite idée pour
resoudre ce petit contr temps
D'avance merci
Cordialement
hugo
Ci joint mon code
Private Sub CommandButton4_Click()
'HOroDateur
'formatage et remplissage des Heure de validation,Chargement,expedition au
format =>"1000"
heure = Hour(Time)
Minute1 = Minute(Time)
Select Case Minute1
Case Is < 10
Minute1 = "0" & Minute1
End Select
With ThisWorkbook.Sheets("Visites_RC")
..[L6] = heure & Minute1
..[AA6] = heure & Minute1 + 10
..[R6] = heure & Minute1 + 20
End With
Set aa = ThisWorkbook.Sheets("Visites_RC").Range("aa6")
If Val(Right(aa, 2)) >= 59 Then aa = aa + 50
Sheets("Visites_RC").Range("aa6") = aa
Set bb = ThisWorkbook.Sheets("Visites_RC").Range("r6")
If Val(Right(bb, 2)) >= 59 Then bb = bb + 50
Sheets("Visites_RC").Range("r6") = bb
Dim test
test = Array(10, 16, 25) 'Nbre decale de Colonne entre la Colonne Ref
For i = 1 To 3
colonne = test(i)
Set Visite = ThisWorkbook.Sheets("Visites_RC")
x = Visite.Range("b6")
DeniereLigne = Visite.Range("b6").End(xlDown).Row
For Each c In Visite.Range("b7:b" & DeniereLigne)
If c.Value <> x Then
If Val(Right(CStr(c.Offset(-1, colonne)), 2)) >= 50 Then
c.Offset(, colonne) = c.Offset(-1, colonne) + 50
Else: c.Offset(, colonne) = c.Offset(-1, colonne) + 10
End If
Else
c.Offset(, colonne) = c.Offset(-1, colonne)
End If
x = c.Value
Next
Next
Sheets("Visites_RC").Select
End Sub
Bonjour Hugo,
Suppose que tu as dans la cellule A1 : 2359 pour 23 hres 59 minutes
et que tu veux ajouter 10 hres 10 minutes à cette valeur :
'Extrait les minutes
m = Right(Range("A1"), 2)
'Extrait les heures
h = Application.Substitute(Range("A1"), m, "")
'Fait la somme
Range("A1") = Format(TimeValue(h & ":" & m) + TimeValue("10:10"), "HMM")
range("A1") = 1009
"hugo2009" a écrit dans le message de groupe de
discussion :
Bonjour ,
J'ai crée une petite fonction qui me permet de dater des evenements dans
une colonnesour le format "1005" pour dix heures et 5 minutes ,ensuite chaque
cellule de cette colonne est incremente de 10 minutes,mais quand j'arrive a
"2359" je voudrais basculer sur "0009" Auriez vous une petite idée pour
resoudre ce petit contr temps
D'avance merci
Cordialement
hugo
Ci joint mon code
Private Sub CommandButton4_Click()
'HOroDateur
'formatage et remplissage des Heure de validation,Chargement,expedition au
format =>"1000"
heure = Hour(Time)
Minute1 = Minute(Time)
Select Case Minute1
Case Is < 10
Minute1 = "0" & Minute1
End Select
With ThisWorkbook.Sheets("Visites_RC")
..[L6] = heure & Minute1
..[AA6] = heure & Minute1 + 10
..[R6] = heure & Minute1 + 20
End With
Set aa = ThisWorkbook.Sheets("Visites_RC").Range("aa6")
If Val(Right(aa, 2)) >= 59 Then aa = aa + 50
Sheets("Visites_RC").Range("aa6") = aa
Set bb = ThisWorkbook.Sheets("Visites_RC").Range("r6")
If Val(Right(bb, 2)) >= 59 Then bb = bb + 50
Sheets("Visites_RC").Range("r6") = bb
Dim test
test = Array(10, 16, 25) 'Nbre decale de Colonne entre la Colonne Ref
For i = 1 To 3
colonne = test(i)
Set Visite = ThisWorkbook.Sheets("Visites_RC")
x = Visite.Range("b6")
DeniereLigne = Visite.Range("b6").End(xlDown).Row
For Each c In Visite.Range("b7:b" & DeniereLigne)
If c.Value <> x Then
If Val(Right(CStr(c.Offset(-1, colonne)), 2)) >= 50 Then
c.Offset(, colonne) = c.Offset(-1, colonne) + 50
Else: c.Offset(, colonne) = c.Offset(-1, colonne) + 10
End If
Else
c.Offset(, colonne) = c.Offset(-1, colonne)
End If
x = c.Value
Next
Next
Sheets("Visites_RC").Select
End Sub
merci pour votre aide precieuse (cela fonctionnne à merveille pour les
premieres cellules des collones) mais en modifiant mon code voir ci-dessous
cela ne fonctionne pas pour la suite des cellules ,ce que je voudrais
pouvoir faire mais je ne sais pas ci cela reste posible: c'est une fois
arrivé à
2354
2404 => 0004 (devienne avec la macro)
2414=> 0014 (devienne avec la macro)
A+
Hugo
For Each c In Feuille(1).Range("b7:b" & DeniereLigne)
If c.Value <> x Then
c.Offset(, colonne) = Format(c.Offset(-1, colonne) + TimeValue("00:10"),
"hhmm")
Else
c.Offset(, colonne) = Format(c.Offset(-1, colonne), "hhmm")
End If
x = c.Value
Next
Next
"MichDenis" a écrit :Bonjour Hugo,
Suppose que tu as dans la cellule A1 : 2359 pour 23 hres 59 minutes
et que tu veux ajouter 10 hres 10 minutes à cette valeur :
'Extrait les minutes
m = Right(Range("A1"), 2)
'Extrait les heures
h = Application.Substitute(Range("A1"), m, "")
'Fait la somme
Range("A1") = Format(TimeValue(h & ":" & m) + TimeValue("10:10"), "HMM")
range("A1") = 1009
"hugo2009" a écrit dans le message de
groupe de discussion :
Bonjour ,
J'ai crée une petite fonction qui me permet de dater des evenements dans
une colonnesour le format "1005" pour dix heures et 5 minutes ,ensuite
chaque cellule de cette colonne est incremente de 10 minutes,mais quand
j'arrive a "2359" je voudrais basculer sur "0009" Auriez vous une petite
idée pour resoudre ce petit contr temps
D'avance merci
Cordialement
hugo
Ci joint mon code
Private Sub CommandButton4_Click()
'HOroDateur
'formatage et remplissage des Heure de validation,Chargement,expedition au
format =>"1000"
heure = Hour(Time)
Minute1 = Minute(Time)
Select Case Minute1
Case Is < 10
Minute1 = "0" & Minute1
End Select
With ThisWorkbook.Sheets("Visites_RC")
..[L6] = heure & Minute1
..[AA6] = heure & Minute1 + 10
..[R6] = heure & Minute1 + 20
End With
Set aa = ThisWorkbook.Sheets("Visites_RC").Range("aa6")
If Val(Right(aa, 2)) >= 59 Then aa = aa + 50
Sheets("Visites_RC").Range("aa6") = aa
Set bb = ThisWorkbook.Sheets("Visites_RC").Range("r6")
If Val(Right(bb, 2)) >= 59 Then bb = bb + 50
Sheets("Visites_RC").Range("r6") = bb
Dim test
test = Array(10, 16, 25) 'Nbre decale de Colonne entre la Colonne Ref
For i = 1 To 3
colonne = test(i)
Set Visite = ThisWorkbook.Sheets("Visites_RC")
x = Visite.Range("b6")
DeniereLigne = Visite.Range("b6").End(xlDown).Row
For Each c In Visite.Range("b7:b" & DeniereLigne)
If c.Value <> x Then
If Val(Right(CStr(c.Offset(-1, colonne)), 2)) >= 50 Then
c.Offset(, colonne) = c.Offset(-1, colonne) + 50
Else: c.Offset(, colonne) = c.Offset(-1, colonne) + 10
End If
Else
c.Offset(, colonne) = c.Offset(-1, colonne)
End If
x = c.Value
Next
Next
Sheets("Visites_RC").Select
End Sub
merci pour votre aide precieuse (cela fonctionnne à merveille pour les
premieres cellules des collones) mais en modifiant mon code voir ci-dessous
cela ne fonctionne pas pour la suite des cellules ,ce que je voudrais
pouvoir faire mais je ne sais pas ci cela reste posible: c'est une fois
arrivé à
2354
2404 => 0004 (devienne avec la macro)
2414=> 0014 (devienne avec la macro)
A+
Hugo
For Each c In Feuille(1).Range("b7:b" & DeniereLigne)
If c.Value <> x Then
c.Offset(, colonne) = Format(c.Offset(-1, colonne) + TimeValue("00:10"),
"hhmm")
Else
c.Offset(, colonne) = Format(c.Offset(-1, colonne), "hhmm")
End If
x = c.Value
Next
Next
"MichDenis" a écrit :
Bonjour Hugo,
Suppose que tu as dans la cellule A1 : 2359 pour 23 hres 59 minutes
et que tu veux ajouter 10 hres 10 minutes à cette valeur :
'Extrait les minutes
m = Right(Range("A1"), 2)
'Extrait les heures
h = Application.Substitute(Range("A1"), m, "")
'Fait la somme
Range("A1") = Format(TimeValue(h & ":" & m) + TimeValue("10:10"), "HMM")
range("A1") = 1009
"hugo2009" <hugo2009@discussions.microsoft.com> a écrit dans le message de
groupe de discussion :
A3EC0C23-EB22-4B1F-8B2F-81B62F8E6A64@microsoft.com... Bonjour ,
J'ai crée une petite fonction qui me permet de dater des evenements dans
une colonnesour le format "1005" pour dix heures et 5 minutes ,ensuite
chaque cellule de cette colonne est incremente de 10 minutes,mais quand
j'arrive a "2359" je voudrais basculer sur "0009" Auriez vous une petite
idée pour resoudre ce petit contr temps
D'avance merci
Cordialement
hugo
Ci joint mon code
Private Sub CommandButton4_Click()
'HOroDateur
'formatage et remplissage des Heure de validation,Chargement,expedition au
format =>"1000"
heure = Hour(Time)
Minute1 = Minute(Time)
Select Case Minute1
Case Is < 10
Minute1 = "0" & Minute1
End Select
With ThisWorkbook.Sheets("Visites_RC")
..[L6] = heure & Minute1
..[AA6] = heure & Minute1 + 10
..[R6] = heure & Minute1 + 20
End With
Set aa = ThisWorkbook.Sheets("Visites_RC").Range("aa6")
If Val(Right(aa, 2)) >= 59 Then aa = aa + 50
Sheets("Visites_RC").Range("aa6") = aa
Set bb = ThisWorkbook.Sheets("Visites_RC").Range("r6")
If Val(Right(bb, 2)) >= 59 Then bb = bb + 50
Sheets("Visites_RC").Range("r6") = bb
Dim test
test = Array(10, 16, 25) 'Nbre decale de Colonne entre la Colonne Ref
For i = 1 To 3
colonne = test(i)
Set Visite = ThisWorkbook.Sheets("Visites_RC")
x = Visite.Range("b6")
DeniereLigne = Visite.Range("b6").End(xlDown).Row
For Each c In Visite.Range("b7:b" & DeniereLigne)
If c.Value <> x Then
If Val(Right(CStr(c.Offset(-1, colonne)), 2)) >= 50 Then
c.Offset(, colonne) = c.Offset(-1, colonne) + 50
Else: c.Offset(, colonne) = c.Offset(-1, colonne) + 10
End If
Else
c.Offset(, colonne) = c.Offset(-1, colonne)
End If
x = c.Value
Next
Next
Sheets("Visites_RC").Select
End Sub
merci pour votre aide precieuse (cela fonctionnne à merveille pour les
premieres cellules des collones) mais en modifiant mon code voir ci-dessous
cela ne fonctionne pas pour la suite des cellules ,ce que je voudrais
pouvoir faire mais je ne sais pas ci cela reste posible: c'est une fois
arrivé à
2354
2404 => 0004 (devienne avec la macro)
2414=> 0014 (devienne avec la macro)
A+
Hugo
For Each c In Feuille(1).Range("b7:b" & DeniereLigne)
If c.Value <> x Then
c.Offset(, colonne) = Format(c.Offset(-1, colonne) + TimeValue("00:10"),
"hhmm")
Else
c.Offset(, colonne) = Format(c.Offset(-1, colonne), "hhmm")
End If
x = c.Value
Next
Next
"MichDenis" a écrit :Bonjour Hugo,
Suppose que tu as dans la cellule A1 : 2359 pour 23 hres 59 minutes
et que tu veux ajouter 10 hres 10 minutes à cette valeur :
'Extrait les minutes
m = Right(Range("A1"), 2)
'Extrait les heures
h = Application.Substitute(Range("A1"), m, "")
'Fait la somme
Range("A1") = Format(TimeValue(h & ":" & m) + TimeValue("10:10"), "HMM")
range("A1") = 1009
"hugo2009" a écrit dans le message de
groupe de discussion :
Bonjour ,
J'ai crée une petite fonction qui me permet de dater des evenements dans
une colonnesour le format "1005" pour dix heures et 5 minutes ,ensuite
chaque cellule de cette colonne est incremente de 10 minutes,mais quand
j'arrive a "2359" je voudrais basculer sur "0009" Auriez vous une petite
idée pour resoudre ce petit contr temps
D'avance merci
Cordialement
hugo
Ci joint mon code
Private Sub CommandButton4_Click()
'HOroDateur
'formatage et remplissage des Heure de validation,Chargement,expedition au
format =>"1000"
heure = Hour(Time)
Minute1 = Minute(Time)
Select Case Minute1
Case Is < 10
Minute1 = "0" & Minute1
End Select
With ThisWorkbook.Sheets("Visites_RC")
..[L6] = heure & Minute1
..[AA6] = heure & Minute1 + 10
..[R6] = heure & Minute1 + 20
End With
Set aa = ThisWorkbook.Sheets("Visites_RC").Range("aa6")
If Val(Right(aa, 2)) >= 59 Then aa = aa + 50
Sheets("Visites_RC").Range("aa6") = aa
Set bb = ThisWorkbook.Sheets("Visites_RC").Range("r6")
If Val(Right(bb, 2)) >= 59 Then bb = bb + 50
Sheets("Visites_RC").Range("r6") = bb
Dim test
test = Array(10, 16, 25) 'Nbre decale de Colonne entre la Colonne Ref
For i = 1 To 3
colonne = test(i)
Set Visite = ThisWorkbook.Sheets("Visites_RC")
x = Visite.Range("b6")
DeniereLigne = Visite.Range("b6").End(xlDown).Row
For Each c In Visite.Range("b7:b" & DeniereLigne)
If c.Value <> x Then
If Val(Right(CStr(c.Offset(-1, colonne)), 2)) >= 50 Then
c.Offset(, colonne) = c.Offset(-1, colonne) + 50
Else: c.Offset(, colonne) = c.Offset(-1, colonne) + 10
End If
Else
c.Offset(, colonne) = c.Offset(-1, colonne)
End If
x = c.Value
Next
Next
Sheets("Visites_RC").Select
End Sub
Regarde un exemple à l'adresse :
http://www.cijoint.fr/cjlink.php?file=cj200906/cijF6sTVm0.xls
En ligne 2, les colonnes A, B, C sont remplies, la formule de la colonne E
donne un résultat.
En ligne 3, la colonne C n'est pas remplie, la formule de la colonne E donne
un résultat vide.
Danielmerci pour votre aide precieuse (cela fonctionnne à merveille pour les
premieres cellules des collones) mais en modifiant mon code voir ci-dessous
cela ne fonctionne pas pour la suite des cellules ,ce que je voudrais
pouvoir faire mais je ne sais pas ci cela reste posible: c'est une fois
arrivé à
2354
2404 => 0004 (devienne avec la macro)
2414=> 0014 (devienne avec la macro)
A+
Hugo
For Each c In Feuille(1).Range("b7:b" & DeniereLigne)
If c.Value <> x Then
c.Offset(, colonne) = Format(c.Offset(-1, colonne) + TimeValue("00:10"),
"hhmm")
Else
c.Offset(, colonne) = Format(c.Offset(-1, colonne), "hhmm")
End If
x = c.Value
Next
Next
"MichDenis" a écrit :Bonjour Hugo,
Suppose que tu as dans la cellule A1 : 2359 pour 23 hres 59 minutes
et que tu veux ajouter 10 hres 10 minutes à cette valeur :
'Extrait les minutes
m = Right(Range("A1"), 2)
'Extrait les heures
h = Application.Substitute(Range("A1"), m, "")
'Fait la somme
Range("A1") = Format(TimeValue(h & ":" & m) + TimeValue("10:10"), "HMM")
range("A1") = 1009
"hugo2009" a écrit dans le message de
groupe de discussion :
Bonjour ,
J'ai crée une petite fonction qui me permet de dater des evenements dans
une colonnesour le format "1005" pour dix heures et 5 minutes ,ensuite
chaque cellule de cette colonne est incremente de 10 minutes,mais quand
j'arrive a "2359" je voudrais basculer sur "0009" Auriez vous une petite
idée pour resoudre ce petit contr temps
D'avance merci
Cordialement
hugo
Ci joint mon code
Private Sub CommandButton4_Click()
'HOroDateur
'formatage et remplissage des Heure de validation,Chargement,expedition
au
format =>"1000"
heure = Hour(Time)
Minute1 = Minute(Time)
Select Case Minute1
Case Is < 10
Minute1 = "0" & Minute1
End Select
With ThisWorkbook.Sheets("Visites_RC")
..[L6] = heure & Minute1
..[AA6] = heure & Minute1 + 10
..[R6] = heure & Minute1 + 20
End With
Set aa = ThisWorkbook.Sheets("Visites_RC").Range("aa6")
If Val(Right(aa, 2)) >= 59 Then aa = aa + 50
Sheets("Visites_RC").Range("aa6") = aa
Set bb = ThisWorkbook.Sheets("Visites_RC").Range("r6")
If Val(Right(bb, 2)) >= 59 Then bb = bb + 50
Sheets("Visites_RC").Range("r6") = bb
Dim test
test = Array(10, 16, 25) 'Nbre decale de Colonne entre la Colonne Ref
For i = 1 To 3
colonne = test(i)
Set Visite = ThisWorkbook.Sheets("Visites_RC")
x = Visite.Range("b6")
DeniereLigne = Visite.Range("b6").End(xlDown).Row
For Each c In Visite.Range("b7:b" & DeniereLigne)
If c.Value <> x Then
If Val(Right(CStr(c.Offset(-1, colonne)), 2)) >= 50 Then
c.Offset(, colonne) = c.Offset(-1, colonne) + 50
Else: c.Offset(, colonne) = c.Offset(-1, colonne) + 10
End If
Else
c.Offset(, colonne) = c.Offset(-1, colonne)
End If
x = c.Value
Next
Next
Sheets("Visites_RC").Select
End Sub
Regarde un exemple à l'adresse :
http://www.cijoint.fr/cjlink.php?file=cj200906/cijF6sTVm0.xls
En ligne 2, les colonnes A, B, C sont remplies, la formule de la colonne E
donne un résultat.
En ligne 3, la colonne C n'est pas remplie, la formule de la colonne E donne
un résultat vide.
Daniel
merci pour votre aide precieuse (cela fonctionnne à merveille pour les
premieres cellules des collones) mais en modifiant mon code voir ci-dessous
cela ne fonctionne pas pour la suite des cellules ,ce que je voudrais
pouvoir faire mais je ne sais pas ci cela reste posible: c'est une fois
arrivé à
2354
2404 => 0004 (devienne avec la macro)
2414=> 0014 (devienne avec la macro)
A+
Hugo
For Each c In Feuille(1).Range("b7:b" & DeniereLigne)
If c.Value <> x Then
c.Offset(, colonne) = Format(c.Offset(-1, colonne) + TimeValue("00:10"),
"hhmm")
Else
c.Offset(, colonne) = Format(c.Offset(-1, colonne), "hhmm")
End If
x = c.Value
Next
Next
"MichDenis" a écrit :
Bonjour Hugo,
Suppose que tu as dans la cellule A1 : 2359 pour 23 hres 59 minutes
et que tu veux ajouter 10 hres 10 minutes à cette valeur :
'Extrait les minutes
m = Right(Range("A1"), 2)
'Extrait les heures
h = Application.Substitute(Range("A1"), m, "")
'Fait la somme
Range("A1") = Format(TimeValue(h & ":" & m) + TimeValue("10:10"), "HMM")
range("A1") = 1009
"hugo2009" <hugo2009@discussions.microsoft.com> a écrit dans le message de
groupe de discussion :
A3EC0C23-EB22-4B1F-8B2F-81B62F8E6A64@microsoft.com... Bonjour ,
J'ai crée une petite fonction qui me permet de dater des evenements dans
une colonnesour le format "1005" pour dix heures et 5 minutes ,ensuite
chaque cellule de cette colonne est incremente de 10 minutes,mais quand
j'arrive a "2359" je voudrais basculer sur "0009" Auriez vous une petite
idée pour resoudre ce petit contr temps
D'avance merci
Cordialement
hugo
Ci joint mon code
Private Sub CommandButton4_Click()
'HOroDateur
'formatage et remplissage des Heure de validation,Chargement,expedition
au
format =>"1000"
heure = Hour(Time)
Minute1 = Minute(Time)
Select Case Minute1
Case Is < 10
Minute1 = "0" & Minute1
End Select
With ThisWorkbook.Sheets("Visites_RC")
..[L6] = heure & Minute1
..[AA6] = heure & Minute1 + 10
..[R6] = heure & Minute1 + 20
End With
Set aa = ThisWorkbook.Sheets("Visites_RC").Range("aa6")
If Val(Right(aa, 2)) >= 59 Then aa = aa + 50
Sheets("Visites_RC").Range("aa6") = aa
Set bb = ThisWorkbook.Sheets("Visites_RC").Range("r6")
If Val(Right(bb, 2)) >= 59 Then bb = bb + 50
Sheets("Visites_RC").Range("r6") = bb
Dim test
test = Array(10, 16, 25) 'Nbre decale de Colonne entre la Colonne Ref
For i = 1 To 3
colonne = test(i)
Set Visite = ThisWorkbook.Sheets("Visites_RC")
x = Visite.Range("b6")
DeniereLigne = Visite.Range("b6").End(xlDown).Row
For Each c In Visite.Range("b7:b" & DeniereLigne)
If c.Value <> x Then
If Val(Right(CStr(c.Offset(-1, colonne)), 2)) >= 50 Then
c.Offset(, colonne) = c.Offset(-1, colonne) + 50
Else: c.Offset(, colonne) = c.Offset(-1, colonne) + 10
End If
Else
c.Offset(, colonne) = c.Offset(-1, colonne)
End If
x = c.Value
Next
Next
Sheets("Visites_RC").Select
End Sub
Regarde un exemple à l'adresse :
http://www.cijoint.fr/cjlink.php?file=cj200906/cijF6sTVm0.xls
En ligne 2, les colonnes A, B, C sont remplies, la formule de la colonne E
donne un résultat.
En ligne 3, la colonne C n'est pas remplie, la formule de la colonne E donne
un résultat vide.
Danielmerci pour votre aide precieuse (cela fonctionnne à merveille pour les
premieres cellules des collones) mais en modifiant mon code voir ci-dessous
cela ne fonctionne pas pour la suite des cellules ,ce que je voudrais
pouvoir faire mais je ne sais pas ci cela reste posible: c'est une fois
arrivé à
2354
2404 => 0004 (devienne avec la macro)
2414=> 0014 (devienne avec la macro)
A+
Hugo
For Each c In Feuille(1).Range("b7:b" & DeniereLigne)
If c.Value <> x Then
c.Offset(, colonne) = Format(c.Offset(-1, colonne) + TimeValue("00:10"),
"hhmm")
Else
c.Offset(, colonne) = Format(c.Offset(-1, colonne), "hhmm")
End If
x = c.Value
Next
Next
"MichDenis" a écrit :Bonjour Hugo,
Suppose que tu as dans la cellule A1 : 2359 pour 23 hres 59 minutes
et que tu veux ajouter 10 hres 10 minutes à cette valeur :
'Extrait les minutes
m = Right(Range("A1"), 2)
'Extrait les heures
h = Application.Substitute(Range("A1"), m, "")
'Fait la somme
Range("A1") = Format(TimeValue(h & ":" & m) + TimeValue("10:10"), "HMM")
range("A1") = 1009
"hugo2009" a écrit dans le message de
groupe de discussion :
Bonjour ,
J'ai crée une petite fonction qui me permet de dater des evenements dans
une colonnesour le format "1005" pour dix heures et 5 minutes ,ensuite
chaque cellule de cette colonne est incremente de 10 minutes,mais quand
j'arrive a "2359" je voudrais basculer sur "0009" Auriez vous une petite
idée pour resoudre ce petit contr temps
D'avance merci
Cordialement
hugo
Ci joint mon code
Private Sub CommandButton4_Click()
'HOroDateur
'formatage et remplissage des Heure de validation,Chargement,expedition
au
format =>"1000"
heure = Hour(Time)
Minute1 = Minute(Time)
Select Case Minute1
Case Is < 10
Minute1 = "0" & Minute1
End Select
With ThisWorkbook.Sheets("Visites_RC")
..[L6] = heure & Minute1
..[AA6] = heure & Minute1 + 10
..[R6] = heure & Minute1 + 20
End With
Set aa = ThisWorkbook.Sheets("Visites_RC").Range("aa6")
If Val(Right(aa, 2)) >= 59 Then aa = aa + 50
Sheets("Visites_RC").Range("aa6") = aa
Set bb = ThisWorkbook.Sheets("Visites_RC").Range("r6")
If Val(Right(bb, 2)) >= 59 Then bb = bb + 50
Sheets("Visites_RC").Range("r6") = bb
Dim test
test = Array(10, 16, 25) 'Nbre decale de Colonne entre la Colonne Ref
For i = 1 To 3
colonne = test(i)
Set Visite = ThisWorkbook.Sheets("Visites_RC")
x = Visite.Range("b6")
DeniereLigne = Visite.Range("b6").End(xlDown).Row
For Each c In Visite.Range("b7:b" & DeniereLigne)
If c.Value <> x Then
If Val(Right(CStr(c.Offset(-1, colonne)), 2)) >= 50 Then
c.Offset(, colonne) = c.Offset(-1, colonne) + 50
Else: c.Offset(, colonne) = c.Offset(-1, colonne) + 10
End If
Else
c.Offset(, colonne) = c.Offset(-1, colonne)
End If
x = c.Value
Next
Next
Sheets("Visites_RC").Select
End Sub
Bonjour Hugo,
Suppose que tu as dans la cellule A1 : 2359 pour 23 hres 59 minutes
et que tu veux ajouter 10 hres 10 minutes à cette valeur :
'Extrait les minutes
m = Right(Range("A1"), 2)
'Extrait les heures
h = Application.Substitute(Range("A1"), m, "")
'Fait la somme
Range("A1") = Format(TimeValue(h & ":" & m) + TimeValue("10:10"), "HMM")
range("A1") = 1009
"hugo2009" a écrit dans le message de groupe de
discussion :
Bonjour ,
J'ai crée une petite fonction qui me permet de dater des evenements dans
une colonnesour le format "1005" pour dix heures et 5 minutes ,ensuite chaque
cellule de cette colonne est incremente de 10 minutes,mais quand j'arrive a
"2359" je voudrais basculer sur "0009" Auriez vous une petite idée pour
resoudre ce petit contr temps
D'avance merci
Cordialement
hugo
Ci joint mon code
Private Sub CommandButton4_Click()
'HOroDateur
'formatage et remplissage des Heure de validation,Chargement,expedition au
format =>"1000"
heure = Hour(Time)
Minute1 = Minute(Time)
Select Case Minute1
Case Is < 10
Minute1 = "0" & Minute1
End Select
With ThisWorkbook.Sheets("Visites_RC")
..[L6] = heure & Minute1
..[AA6] = heure & Minute1 + 10
..[R6] = heure & Minute1 + 20
End With
Set aa = ThisWorkbook.Sheets("Visites_RC").Range("aa6")
If Val(Right(aa, 2)) >= 59 Then aa = aa + 50
Sheets("Visites_RC").Range("aa6") = aa
Set bb = ThisWorkbook.Sheets("Visites_RC").Range("r6")
If Val(Right(bb, 2)) >= 59 Then bb = bb + 50
Sheets("Visites_RC").Range("r6") = bb
Dim test
test = Array(10, 16, 25) 'Nbre decale de Colonne entre la Colonne Ref
For i = 1 To 3
colonne = test(i)
Set Visite = ThisWorkbook.Sheets("Visites_RC")
x = Visite.Range("b6")
DeniereLigne = Visite.Range("b6").End(xlDown).Row
For Each c In Visite.Range("b7:b" & DeniereLigne)
If c.Value <> x Then
If Val(Right(CStr(c.Offset(-1, colonne)), 2)) >= 50 Then
c.Offset(, colonne) = c.Offset(-1, colonne) + 50
Else: c.Offset(, colonne) = c.Offset(-1, colonne) + 10
End If
Else
c.Offset(, colonne) = c.Offset(-1, colonne)
End If
x = c.Value
Next
Next
Sheets("Visites_RC").Select
End Sub
Bonjour Hugo,
Suppose que tu as dans la cellule A1 : 2359 pour 23 hres 59 minutes
et que tu veux ajouter 10 hres 10 minutes à cette valeur :
'Extrait les minutes
m = Right(Range("A1"), 2)
'Extrait les heures
h = Application.Substitute(Range("A1"), m, "")
'Fait la somme
Range("A1") = Format(TimeValue(h & ":" & m) + TimeValue("10:10"), "HMM")
range("A1") = 1009
"hugo2009" <hugo2009@discussions.microsoft.com> a écrit dans le message de groupe de
discussion : A3EC0C23-EB22-4B1F-8B2F-81B62F8E6A64@microsoft.com...
Bonjour ,
J'ai crée une petite fonction qui me permet de dater des evenements dans
une colonnesour le format "1005" pour dix heures et 5 minutes ,ensuite chaque
cellule de cette colonne est incremente de 10 minutes,mais quand j'arrive a
"2359" je voudrais basculer sur "0009" Auriez vous une petite idée pour
resoudre ce petit contr temps
D'avance merci
Cordialement
hugo
Ci joint mon code
Private Sub CommandButton4_Click()
'HOroDateur
'formatage et remplissage des Heure de validation,Chargement,expedition au
format =>"1000"
heure = Hour(Time)
Minute1 = Minute(Time)
Select Case Minute1
Case Is < 10
Minute1 = "0" & Minute1
End Select
With ThisWorkbook.Sheets("Visites_RC")
..[L6] = heure & Minute1
..[AA6] = heure & Minute1 + 10
..[R6] = heure & Minute1 + 20
End With
Set aa = ThisWorkbook.Sheets("Visites_RC").Range("aa6")
If Val(Right(aa, 2)) >= 59 Then aa = aa + 50
Sheets("Visites_RC").Range("aa6") = aa
Set bb = ThisWorkbook.Sheets("Visites_RC").Range("r6")
If Val(Right(bb, 2)) >= 59 Then bb = bb + 50
Sheets("Visites_RC").Range("r6") = bb
Dim test
test = Array(10, 16, 25) 'Nbre decale de Colonne entre la Colonne Ref
For i = 1 To 3
colonne = test(i)
Set Visite = ThisWorkbook.Sheets("Visites_RC")
x = Visite.Range("b6")
DeniereLigne = Visite.Range("b6").End(xlDown).Row
For Each c In Visite.Range("b7:b" & DeniereLigne)
If c.Value <> x Then
If Val(Right(CStr(c.Offset(-1, colonne)), 2)) >= 50 Then
c.Offset(, colonne) = c.Offset(-1, colonne) + 50
Else: c.Offset(, colonne) = c.Offset(-1, colonne) + 10
End If
Else
c.Offset(, colonne) = c.Offset(-1, colonne)
End If
x = c.Value
Next
Next
Sheets("Visites_RC").Select
End Sub
Bonjour Hugo,
Suppose que tu as dans la cellule A1 : 2359 pour 23 hres 59 minutes
et que tu veux ajouter 10 hres 10 minutes à cette valeur :
'Extrait les minutes
m = Right(Range("A1"), 2)
'Extrait les heures
h = Application.Substitute(Range("A1"), m, "")
'Fait la somme
Range("A1") = Format(TimeValue(h & ":" & m) + TimeValue("10:10"), "HMM")
range("A1") = 1009
"hugo2009" a écrit dans le message de groupe de
discussion :
Bonjour ,
J'ai crée une petite fonction qui me permet de dater des evenements dans
une colonnesour le format "1005" pour dix heures et 5 minutes ,ensuite chaque
cellule de cette colonne est incremente de 10 minutes,mais quand j'arrive a
"2359" je voudrais basculer sur "0009" Auriez vous une petite idée pour
resoudre ce petit contr temps
D'avance merci
Cordialement
hugo
Ci joint mon code
Private Sub CommandButton4_Click()
'HOroDateur
'formatage et remplissage des Heure de validation,Chargement,expedition au
format =>"1000"
heure = Hour(Time)
Minute1 = Minute(Time)
Select Case Minute1
Case Is < 10
Minute1 = "0" & Minute1
End Select
With ThisWorkbook.Sheets("Visites_RC")
..[L6] = heure & Minute1
..[AA6] = heure & Minute1 + 10
..[R6] = heure & Minute1 + 20
End With
Set aa = ThisWorkbook.Sheets("Visites_RC").Range("aa6")
If Val(Right(aa, 2)) >= 59 Then aa = aa + 50
Sheets("Visites_RC").Range("aa6") = aa
Set bb = ThisWorkbook.Sheets("Visites_RC").Range("r6")
If Val(Right(bb, 2)) >= 59 Then bb = bb + 50
Sheets("Visites_RC").Range("r6") = bb
Dim test
test = Array(10, 16, 25) 'Nbre decale de Colonne entre la Colonne Ref
For i = 1 To 3
colonne = test(i)
Set Visite = ThisWorkbook.Sheets("Visites_RC")
x = Visite.Range("b6")
DeniereLigne = Visite.Range("b6").End(xlDown).Row
For Each c In Visite.Range("b7:b" & DeniereLigne)
If c.Value <> x Then
If Val(Right(CStr(c.Offset(-1, colonne)), 2)) >= 50 Then
c.Offset(, colonne) = c.Offset(-1, colonne) + 50
Else: c.Offset(, colonne) = c.Offset(-1, colonne) + 10
End If
Else
c.Offset(, colonne) = c.Offset(-1, colonne)
End If
x = c.Value
Next
Next
Sheets("Visites_RC").Select
End Sub