Addition Heures Listbox vba
Résolu/Fermé
lanetmel
Messages postés
200
Date d'inscription
mercredi 24 août 2011
Statut
Membre
Dernière intervention
15 mars 2018
-
Modifié par lanetmel le 13/07/2012 à 16:40
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 18 juil. 2012 à 09:24
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 18 juil. 2012 à 09:24
A voir également:
- Addition Heures Listbox vba
- Formule addition excel - Guide
- Find vba - Astuces et Solutions
- Vba attendre 1 seconde ✓ - Forum VB / VBA
- Incompatibilité de type vba ✓ - Forum Programmation
- Vba dernière colonne non vide ✓ - Forum VB / VBA
5 réponses
eriiic
Messages postés
24569
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
14 mars 2024
7 209
13 juil. 2012 à 19:42
13 juil. 2012 à 19:42
Bonjour,
eric
totalpause = totalpause + Val(Range("O" & i))serait mieux non ?
eric
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 741
17 juil. 2012 à 17:04
17 juil. 2012 à 17:04
De rien.
Cette proposition t'as été faite ici, mais à cause du site et du système de commentaires qui s'affichent ou pas... Ben c'est passé inaperçu!
Nous avons de par le fait faillit ne pas résoudre ton souci alors que...
C'est décidé, je ne réponds plus par commentaire, mais par "répondre"....
A bon entendeur.
En tout cas, ravi pour toi Mélanie, et à la prochaine.
Comme d'hab, n'hésite pas...
Cette proposition t'as été faite ici, mais à cause du site et du système de commentaires qui s'affichent ou pas... Ben c'est passé inaperçu!
Nous avons de par le fait faillit ne pas résoudre ton souci alors que...
C'est décidé, je ne réponds plus par commentaire, mais par "répondre"....
A bon entendeur.
En tout cas, ravi pour toi Mélanie, et à la prochaine.
Comme d'hab, n'hésite pas...
lanetmel
Messages postés
200
Date d'inscription
mercredi 24 août 2011
Statut
Membre
Dernière intervention
15 mars 2018
4
13 juil. 2012 à 17:34
13 juil. 2012 à 17:34
Bonjour,
Je continue d'essayer de trouver ma solution mais je n'y arrive toujours pas.
J'ai fais le changement suivant à mon code :
enlever
Tbox_pause = Format(totalpause, "hh:mm")
totalpause = Val(Tbox_pause) + Val(.Range("O" & i))
Remplacé par
Tbox_pause = Val(Tbox_pause) + Val(.Range("O" & i))
Si je prends le même exemple que dans mon premier message :
Pour ouvrir le Usf : Feuille 2007 : Case B2 (Bouton1)
Il faut ensuite ajouter des dates : 2007-01-10 au 2007-01-11
ensuite : appuyer sur le bouton afficher
au lieu d'afficher 00:00 comme avant, j'ai maintenant 4
00:15 : 1.0416667
00:30 : 2.083333
00:15 : 1.0416667
_____ : ________
1:00 4.1667
Alors je me dis que mon 4 doit être 4.1667 arrondi..
Quelqu'un a une idée comment mettre mon 4 en 1:00?
merci à l'avance
Mélanie
Je continue d'essayer de trouver ma solution mais je n'y arrive toujours pas.
J'ai fais le changement suivant à mon code :
enlever
Tbox_pause = Format(totalpause, "hh:mm")
totalpause = Val(Tbox_pause) + Val(.Range("O" & i))
Remplacé par
Tbox_pause = Val(Tbox_pause) + Val(.Range("O" & i))
Si je prends le même exemple que dans mon premier message :
Pour ouvrir le Usf : Feuille 2007 : Case B2 (Bouton1)
Il faut ensuite ajouter des dates : 2007-01-10 au 2007-01-11
ensuite : appuyer sur le bouton afficher
au lieu d'afficher 00:00 comme avant, j'ai maintenant 4
00:15 : 1.0416667
00:30 : 2.083333
00:15 : 1.0416667
_____ : ________
1:00 4.1667
Alors je me dis que mon 4 doit être 4.1667 arrondi..
Quelqu'un a une idée comment mettre mon 4 en 1:00?
merci à l'avance
Mélanie
lanetmel
Messages postés
200
Date d'inscription
mercredi 24 août 2011
Statut
Membre
Dernière intervention
15 mars 2018
4
16 juil. 2012 à 16:54
16 juil. 2012 à 16:54
Bonjour Eric,
merci pour ta réponse, j'ai essayé mais
Si je laisse ma variable en date ça me donne 03/01/1900 si je ne défini pas le type ça me donne encore 4...
merci à l'avance
Mélanie
merci pour ta réponse, j'ai essayé mais
Si je laisse ma variable en date ça me donne 03/01/1900 si je ne défini pas le type ça me donne encore 4...
merci à l'avance
Mélanie
eriiic
Messages postés
24569
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
14 mars 2024
7 209
16 juil. 2012 à 17:34
16 juil. 2012 à 17:34
Bonjour,
quel est le rapport avec ce que j'ai écrit ???
totalpause = totalpause + Val(Range("O" & i))
eric
quel est le rapport avec ce que j'ai écrit ???
totalpause = totalpause + Val(Range("O" & i))
eric
lanetmel
Messages postés
200
Date d'inscription
mercredi 24 août 2011
Statut
Membre
Dernière intervention
15 mars 2018
4
16 juil. 2012 à 18:34
16 juil. 2012 à 18:34
Bonjour Éric,
J'ai changé totalpause = Val(Tbox_pause) + Val(.Range("O" & i))
pour totalpause = totalpause + Val(Range("O" & i))
qui a effectivement plus d'allure..
mais ça ne change rien au résultat.. Je sais que ton changement ne devait pas changer mon format.. je cherche toujours la réponse..
merci encore
Mélanie
J'ai changé totalpause = Val(Tbox_pause) + Val(.Range("O" & i))
pour totalpause = totalpause + Val(Range("O" & i))
qui a effectivement plus d'allure..
mais ça ne change rien au résultat.. Je sais que ton changement ne devait pas changer mon format.. je cherche toujours la réponse..
merci encore
Mélanie
eriiic
Messages postés
24569
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
14 mars 2024
7 209
Modifié par eriiic le 16/07/2012 à 18:48
Modifié par eriiic le 16/07/2012 à 18:48
Re,
ton format est correct et est ici :
Tbox_pause = Format(totalpause, "hh:mm")
Chez moi il affiche bien 01:00, je ne vois pas d'où tu sors ton 4.xxx
Ou alors tu ne parles pas du tbox_pause (?)
eric
ton format est correct et est ici :
Tbox_pause = Format(totalpause, "hh:mm")
Chez moi il affiche bien 01:00, je ne vois pas d'où tu sors ton 4.xxx
Ou alors tu ne parles pas du tbox_pause (?)
eric
lanetmel
Messages postés
200
Date d'inscription
mercredi 24 août 2011
Statut
Membre
Dernière intervention
15 mars 2018
4
16 juil. 2012 à 19:23
16 juil. 2012 à 19:23
Bonjour Eric,
Chez-moi ça ne fonctionne pas..
Si je mets ma variable comme suit : Dim totalpause As Date
ensuite ce code : With Sheets("2007")
NbLigneAtraiter = .Range("A" & Rows.Count).End(xlUp).Row
ListBox1.Clear
Tbox_pause = ""
Tbox_durée = ""
For i = 13 To NbLigneAtraiter
If .Range("L" & i) >= DTPicker_Du.Value And .Range("L" & i) <= DTPicker_Au.Value Then
ListBox1.AddItem .Range("L" & i)
ListBox1.List(ListBox1.ListCount - 1, 1) = Format(.Range("M" & i), "hh:mm")
ListBox1.List(ListBox1.ListCount - 1, 2) = Format(.Range("N" & i), "hh:mm")
ListBox1.List(ListBox1.ListCount - 1, 3) = Format(.Range("O" & i), "hh:mm")
ListBox1.List(ListBox1.ListCount - 1, 4) = Format(.Range("P" & i), "hh:mm")
totalpause = totalpause + Val(Range("O" & i))
Tbox_pause = Format (totalpause, "hh:mm")
End If
Next i
End With
End Sub
J'obtiens : 00:00
Si j'enlève le format de ma tbox_pause : Tbox_pause = totalpause
J'obtiens : 1900-01-03
Si je décalre ma variable ainsi : Dim totalpause et que j'enlève mon format de ma textbox : Tbox_pause = totalpause
J'obtiens : 4
As-tu une idée de ce qui peut faire que ça fonctionne chez-toi et pas chez-moi?
encore merci
Mélanie
Chez-moi ça ne fonctionne pas..
Si je mets ma variable comme suit : Dim totalpause As Date
ensuite ce code : With Sheets("2007")
NbLigneAtraiter = .Range("A" & Rows.Count).End(xlUp).Row
ListBox1.Clear
Tbox_pause = ""
Tbox_durée = ""
For i = 13 To NbLigneAtraiter
If .Range("L" & i) >= DTPicker_Du.Value And .Range("L" & i) <= DTPicker_Au.Value Then
ListBox1.AddItem .Range("L" & i)
ListBox1.List(ListBox1.ListCount - 1, 1) = Format(.Range("M" & i), "hh:mm")
ListBox1.List(ListBox1.ListCount - 1, 2) = Format(.Range("N" & i), "hh:mm")
ListBox1.List(ListBox1.ListCount - 1, 3) = Format(.Range("O" & i), "hh:mm")
ListBox1.List(ListBox1.ListCount - 1, 4) = Format(.Range("P" & i), "hh:mm")
totalpause = totalpause + Val(Range("O" & i))
Tbox_pause = Format (totalpause, "hh:mm")
End If
Next i
End With
End Sub
J'obtiens : 00:00
Si j'enlève le format de ma tbox_pause : Tbox_pause = totalpause
J'obtiens : 1900-01-03
Si je décalre ma variable ainsi : Dim totalpause et que j'enlève mon format de ma textbox : Tbox_pause = totalpause
J'obtiens : 4
As-tu une idée de ce qui peut faire que ça fonctionne chez-toi et pas chez-moi?
encore merci
Mélanie
eriiic
Messages postés
24569
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
14 mars 2024
7 209
16 juil. 2012 à 20:57
16 juil. 2012 à 20:57
pourquoi tu enlèves le format "hh:mm" puisque c'est c'est celui que tu veux ????
Si je décalre ma variable ainsi : Dim totalpause et que j'enlève mon format de ma textbox : Tbox_pause = totalpause
Ca ne prouve qu'une chose : c'est donc ce qu'il ne faut pas faire.
Tu avances au hasard et tu dis ça ne marche pas... Ben oui...
Moi j'ai fait du 3/1/2007 au 4/1/2007
Poste le fichier qui est mauvais chez toi, il y a sûrement autre chose.
Ou reprend celui que tu as posté et change juste ce que je t'ai indiqué.
eric
Si je décalre ma variable ainsi : Dim totalpause et que j'enlève mon format de ma textbox : Tbox_pause = totalpause
Ca ne prouve qu'une chose : c'est donc ce qu'il ne faut pas faire.
Tu avances au hasard et tu dis ça ne marche pas... Ben oui...
Moi j'ai fait du 3/1/2007 au 4/1/2007
Poste le fichier qui est mauvais chez toi, il y a sûrement autre chose.
Ou reprend celui que tu as posté et change juste ce que je t'ai indiqué.
eric
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 741
18 juil. 2012 à 09:24
18 juil. 2012 à 09:24
Bonjour,
Encore par ici Mélanie?
Au vu du nombre de lignes à traiter (14 000), je suggère de passer par une variable tableau beaucoup plus rapide...
Encore par ici Mélanie?
Au vu du nombre de lignes à traiter (14 000), je suggère de passer par une variable tableau beaucoup plus rapide...
Private Sub Userform_initialize() Dim NbLigneAtraiter As Long End Sub Private Sub CommandButton1_Click() ' bouton afficher Dim totalpause As Date Dim cpt As Long, ch As String Dim i As Long, Donnees() Dim msg As String With Sheets("2007") NbLigneAtraiter = .Range("A" & Rows.Count).End(xlUp).Row Donnees = Range("L3:P" & NbLigneAtraiter) ListBox1.Clear Tbox_pause = "" Tbox_durée = "" For i = LBound(Donnees, 1) To UBound(Donnees, 1) If CDate(Donnees(i, 1)) >= DTPicker_Du.Value And CDate(Donnees(i, 1)) <= DTPicker_Au.Value Then cpt = cpt + 1 ListBox1.AddItem CDate(Donnees(i, 1)) ListBox1.List(ListBox1.ListCount - 1, 1) = Format(Donnees(i, 2), "hh:mm") ListBox1.List(ListBox1.ListCount - 1, 2) = Format(Donnees(i, 3), "hh:mm") ListBox1.List(ListBox1.ListCount - 1, 3) = Format(Donnees(i, 4), "hh:mm") ListBox1.List(ListBox1.ListCount - 1, 4) = Format(Donnees(i, 5), "hh:mm") totalpause = totalpause + CDate(Donnees(i, 4)) Tbox_pause = Format(totalpause, "hh:mm") ch = totalpause & " = " & Format(totalpause, "hh:mm") End If Next i End With msg = "compteur date = " & cpt msg = msg & vbCrLf & "Total pause : " & ch MsgBox msg End Sub