XL 2016 Affichage "bizarre" dans une listbox

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

la bidouille

XLDnaute Nouveau
Bonjour à toutes et tous .
Pour un projet de comptage de chrono, j'ai adapté un fichier simple qui fonctionne. Toutefois même si les cellules sont en format hh:mm:ss, l'affichage dans ma listbox en reconverti en chiffre valeur comme 2.45633218985263. Qui pourrait me solutionner cette anomalie par un code VBA dans mon fichier. Pour info, je suis un papy bidouilleur d'occasion et presque nul en informatique... Mais une explication serait la bienvenue pour comprendre la correction.
Grand merci par avance
 

Pièces jointes

Solution
Bonjour.
Vous pouvez aussi appliquer :
Code:
=Accueil!$H$4/([@[Chrono Officiel]]*24000)
= Distance en mètres à parcourir / (durée en jours × nombre d'heure dans un jour × nombre de mètres dans un km)
Format Standard.
(Rappel : Les durées et instants affichées par formats d'heures ou de dates sont en réalité toujours stockées en jours.)
Bonjour,

Vous pouvez mette en Chronos!D2 la formule :
Code:
=[@[Total pénalités]]*10/86400
A+

bonjour et encore grand merci
Merci pour la formule
Bonjour,

Vous pouvez mette en Chronos!D2 la formule :
Code:
=[@[Total pénalités]]*10/86400
A+

perso a part les sub de tri je changerais tout
par exemple pour le problème de temps je le fera"is directement dans BD qui est un variant tableau et contient le tableau de la feuille
exemple
bref je commencerais comme ça
VB:
Private Sub UserForm_Initialize()
    NomTableau = "TabChrono" ' à Adapter
    NbCol = Range("TabChrono").Columns.Count
    BD = Range(NomTableau).Resize(, NbCol + 1).Value ' Array: + rapide
    For i = 1 To UBound(BD) '
        BD(i, UBound(BD, 2)) = i ' index de ligne dans la colonne ajoutée
        For c = 3 To 5
            BD(i, c) = CDate(BD(i, c)) ' tant qu'a faire on  fait tout de suite la conversion decimale to time puisque l'on fait déjà une boucle pour la colonne indexation de ligne
        Next c
    Next i
    BD(1, UBound(BD, 2)) = "Ligne"'on ajoute l'entete de la colonne supplementaire d'indexation

'parti de la tu a le tableau complet avec les valeur temps en bon et due forme et la colonne des numeros de ligne

    Me.ComboTri.Column = Range(NomTableau & "[#HEADERS]").Resize(, NbCol + 1).Value
 
perso a part les sub de tri je changerais tout
par exemple pour le problème de temps je le fera"is directement dans BD qui est un variant tableau et contient le tableau de la feuille
exemple
bref je commencerais comme ça
VB:
Private Sub UserForm_Initialize()
    NomTableau = "TabChrono" ' à Adapter
    NbCol = Range("TabChrono").Columns.Count
    BD = Range(NomTableau).Resize(, NbCol + 1).Value ' Array: + rapide
    For i = 1 To UBound(BD) '
        BD(i, UBound(BD, 2)) = i ' index de ligne dans la colonne ajoutée
        For c = 3 To 5
            BD(i, c) = CDate(BD(i, c)) ' tant qu'a faire on  fait tout de suite la conversion decimale to time puisque l'on fait déjà une boucle pour la colonne indexation de ligne
        Next c
    Next i
    BD(1, UBound(BD, 2)) = "Ligne"'on ajoute l'entete de la colonne supplementaire d'indexation

'parti de la tu a le tableau complet avec les valeur temps en bon et due forme et la colonne des numeros de ligne

    Me.ComboTri.Column = Range(NomTableau & "[#HEADERS]").Resize(, NbCol + 1).Value
Re bonjour Patrick
Grand merci pour le code, je le testerais après le déroulement de la course dans 3 semaines... J'ai maintenant un fichier qui fonctionne et je ne vais pas prendre le risque de me planter avant le jour J avec le stress des préparatifs. Au pis aller, si j'ai un peu de temps libre, je vais essayer sur une copie de fichier dans les jours prochains.
un autre internaute m'a donné la formule de calcul temps/ pénalités que je vais intégrer aussi.
Encore grand merci pour votre aide.
 
Bonjour,

Vous pouvez mette en Chronos!D2 la formule :
Code:
=[@[Total pénalités]]*10/86400
A+
Bonjour Job75
Merci pour la formule que je viens d'intégrer .. c'est ce que je voulais mais... cette dernière ne fonctionne qu'avec des temps positifs. si le calcul donne un temps négatif dans la feuille (ce qui est OK) les temps négatifs ne sont pas reproduits dans les textboxs et listbox. Peut-on corriger cela ?

Par ailleurs en abusant de votre gentillesse et savoir... je souhaiterais dans le futur ajouter deux autres colonnes avec textboxs. l'un comportant une distance en mètres, l'autre donnant la vitesse calculée du véhicule en rapport Chrono officiel / distance... Auriez vous une formule pour cela ?
encore Grand Merci.
 

Pièces jointes

Bonjour la bidouille, le forum,

Il y a un truc que je ne comprends pas : quand il y a des pénalités on devrait augmenter la durée du chrono, pas la diminuer.

Ainsi il n'y aurait pas de durées négatives.

A+
Bonjour Job75
Encore merci pour vos lumières... grâce a vous je commence presque à comprendre le VBA et je vais pouvoir adapter d'autres formules.
en ce qui concerne les Pénalités négatives... en fait j'organise, ce qui n'est pas courant, une course de lenteur sur 100 m, un peu à ce qui se faisait dans les rues de Montmartre à Paris il y a quelques années. Donc, c'est celui qui met le plus de temps qui gagne, d'où la diminution du temps chrono pour les pénalités. (Plus tu pédales moins vite, moins t'avances plus vite...😁🤪) Je sais, c'est fou, mais avec mon comité des fêtes on essaye de sortir des activités habituelles pour faire sortir les gens et d'apporter un plus dans le village.
a propos, vous avez une idée pour le calcul de la vitesse...
Encore Merci et A+
 
Bonjour la bidouille, le forum,
a propos, vous avez une idée pour le calcul de la vitesse...
C'est élémentaire.

Dans le tableau de la feuille Chronos créez 2 colonnes intitulées Distance et Vitesse et mettez-les au format Standard.

La distance sera entrée manuellement ou par l'UserForm et exprimée en mètres.

La vitesse sera exprimée en m/s et calculée par la formule :
VB:
=[@Distance]/([@[Chrono Officiel]]*86400)
A+
 
Bonjour la bidouille, le forum,

C'est élémentaire.

Dans le tableau de la feuille Chronos créez 2 colonnes intitulées Distance et Vitesse et mettez-les au format Standard.

La distance sera entrée manuellement ou par l'UserForm et exprimée en mètres.

La vitesse sera exprimée en m/s et calculée par la formule :
VB:
=[@Distance]/([@[Chrono Officiel]]*86400)
A+
Re bonjour
Super, tout fonctionne ... mais sur le plan pratique, rentrer la distance qui est identique pour chaque participant me parait pas trop pratique.. il doit y avoir une méthode ou une formule permettant de reproduire la distance rentrée en L2 en début de course et qu'elle se recopie d'elle même à chaque création de ligne.
Après cela, promis juré, je ne vous embête plus et je met le cas résolu. Encore un grand merci.
 
Bonjour TooFatBoy,

Bien d'accord, dans ce cas on pourra mettre la distance en F9 de la feuille Accueil et la formule de la vitesse devient :
Code:
=Accueil!F$9/([@[Chrono Officiel]]*86400)
Bonjour Job75, Bonjour TooFatBoy
Encore merci pour vos contributions et vos connaissances en la matière...
Pour pinaillez, je souhaiterais avoir la vitesse en Kmh dans une colonne supplémentaire, J'ai multiplier la vitesse m:s par 3600 mais j'obtiens bien naturellement un affichage en m:s ... Comment changer cet affichage autant dans la feuille que sur la listbox du formulaire pour l'avoir en Kmh lisible.? (exemple 3.200)
L'animateur de course pourra ainsi donner en direct la vitesse des concurrents.
Je remet mon fichier complet avec les améliorations
 

Pièces jointes

Pour pinaillez, je souhaiterais avoir la vitesse en Kmh dans une colonne supplémentaire
Pour pinailler moi aussi, je signalerai que ce n'est pas "Kmh" mais "km/h". 😉


Comment changer cet affichage autant dans la feuille que sur la listbox du formulaire pour l'avoir en Kmh lisible.? (exemple 3.200)
De même, 3.200 n'existe pas en français.
C'est, soit 3200 ou 3 200 pour "trois mille deux cents", soit 3,200 pour "trois virgule deux".

Bon, ici je suppose que ce n'est pas 3 200 km/h... 😅
 
Bonjour le forum,

Là ce n'est pas le niveau Excel c'est le niveau école primaire.

Il y a 86400 secondes dans 1 jour ou 24 heures dans 1 jour.

Et 1000 m dans 1 km

A+
Bonjour
Ben oui, l'école primaire est déjà loin pour moi, je l'ai quitté en 1968, a une époque troublée pour rentrer dans la vie professionnelle et surtout une époque ou les ordinateurs étaient inexistant.. et croyez moi, il n'est pas facile de se remettre au niveau. Ceci dis, cela ne résolve pas mon problème d'affichage en Km/h.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour