Remplir textbox en auto

bonjour EGG, comment peut 'on ecrire le fonction min dans une textbox

je voudrais afficher le min de plusieurs textbox.

J'ai quatre textbox t1 t2 t3 t4 la 5ème best temps et voudrais que le min affiche

je connais la formule sous excel mais en vba ?????????

COMME JE CONNAIS RIEN EN VBA

JE TE REMERCIE D AVANCE DE TA REPONSE .

Sébastien.

Bonsoir Seb,

Si c'est une comparaison entre les différents contenus de textbox en vba, à mon avis il faut passer par "if" ou par "case".

exemple avec "if", le nombre de cas étant limité, c'est pas très long :

If t1<t2 and t1<t3 and t1<t4 then best_temps=t1

4 lignes sont nécessaires pour tous les cas.

A+

Bonsoir Egg, je reviens sur ce dernier email tu ne ma re transférer le fichier

'C'est fait pour ça : les 2 feuilles peuvent être vides, elles seront incrémentées au fur et à mesure de la saisie.'

merci pour ta réponse

seb

Ne pas oublier de clôturer la discussion quand le problème est résolu svp !

Merci pour ton implication sur mon projet.

A propos de la formule

Min

Voici la façon que j'ai écrit suite a ton exemple.

Mais rien ne s'affiche

Private Sub tb_Best_Temps_AfterUpdate()

'Affiche le temps en minutes secondes et centièmes'

tb_Best_Temps = Format(tb_Best_Temps.Value, "00:00:00")

'If t1 < t2 And t1 < t3 And t1 < t4 Then best_temps = t1

If tb_Temps1 < tb_Temps2 And tb_Temps1 < tb_Temps3 And tb_Temps1 < tb_Temps4 Then tb_Best_Temps = tb_Temps1

If tb_Temps1 < tb_Temps2 And tb_Temps1 < tb_Temps3 And tb_Temps1 < tb_Temps4 Then tb_Best_Temps = tb_Temps2

If tb_Temps1 < tb_Temps2 And tb_Temps1 < tb_Temps3 And tb_Temps1 < tb_Temps4 Then tb_Best_Temps = tb_Temps3

If tb_Temps1 < tb_Temps2 And tb_Temps1 < tb_Temps3 And tb_Temps1 < tb_Temps4 Then tb_Best_Temps = tb_Temps4

End If

End Sub

Sébastien.

D'abord il faut caler le Afterupdate() sur le dernier textbox renseigné, donc tb_Temps4 qui déclenchera la comparaison.

Il n'y a que 4 solutions puisque 4 textbox :

If tb_Temps1 < tb_Temps2 And tb_Temps1 < tb_Temps3 And tb_Temps1 < tb_Temps4 Then tb_Best_Temps = tb_Temps1

If tb_Temps2 < tb_Temps1 And tb_Temps2 < tb_Temps3 And tb_Temps2 < tb_Temps4 Then tb_Best_Temps = tb_Temps2

If tb_Temps3 < tb_Temps1 And tb_Temps3 < tb_Temps2 And tb_Temps3 < tb_Temps4 Then tb_Best_Temps = tb_Temps3

If tb_Temps4 < tb_Temps1 And tb_Temps4 < tb_Temps2 And tb_Temps4 < tb_Temps3 Then tb_Best_Temps = tb_Temps4

tb_Best_Temps = Format(tb_Best_Temps.Value, "00:00:00")

Là ça devrait rouler.

A+

re egg, j'ai mis le code dans la 4ème textbox et après tabulation le temps s'affiche bien mais celle de la 4ème.

j'ai coller le code dans les autres textbox mais cela ne fonctionne pas .

Si par exemple il y a une textbox est à zéro ou deux ou trois le min est tout sauf Zéro.

merci pour ta réponse

Sébastien.

Je te joins le fichier

Ongel mdescente

Re bonsoir,

Attention Seb ! Le vba supporte très difficilement l'approximatif... Il ne suffit pas de faire un copier coller du programme du userform1 sur le userform2, il faut aussi l'adapter et vérifier ligne par ligne.

Et attention encore : sur la nouvelle feuille "modescente", il faut dissocier les colonnes "points" et "classement", sinon celles-ci seront triées avec les autres et... adieu le classement !

J'ai corrigé le code relié au clic sur LBLISTING ainsi que sur le bouton "VALIDER LA SAISIE".

A toi de voir pour le reste !


Désolé j'ai omis le fichier

Re egg, j'ai rajouter comme ceci et cela fonction bien

Private Sub tb_Temps4_AfterUpdate()

'Affiche le temps en minutes secondes et centièmes'

If tb_Temps1 < tb_Temps2 And tb_Temps1 < tb_Temps3 And tb_Temps1 < tb_Temps4 Then tb_Best_Temps = tb_Temps1

If tb_Temps2 < tb_Temps1 And tb_Temps2 < tb_Temps3 And tb_Temps2 < tb_Temps4 Then tb_Best_Temps = tb_Temps2

If tb_Temps3 < tb_Temps1 And tb_Temps3 < tb_Temps2 And tb_Temps3 < tb_Temps4 Then tb_Best_Temps = tb_Temps3

If tb_Temps4 < tb_Temps1 And tb_Temps4 < tb_Temps2 And tb_Temps4 < tb_Temps3 Then tb_Best_Temps = tb_Temps4

tb_Best_Temps = Format(tb_Best_Temps.Value, "00:00:00")

'Affiche le temps en minutes secondes et centièmes'

tb_Temps1 = Format(tb_Temps1.Value, "00:00:00")

tb_Temps2 = Format(tb_Temps2.Value, "00:00:00")

tb_Temps3 = Format(tb_Temps3.Value, "00:00:00")

tb_Temps4 = Format(tb_Temps4.Value, "00:00:00")

End Sub

cad, je tape le temps comme ceci dans chaque texbox 012356(exemple) après tabulation sur le 5ème cela m'affiche bien le min et m'indique les autres temps dans le bon format 01:10:23

Comment faire si j'ai une ou plusieurs textbox vide, et que cela m'indique le min dans la textbox best_temps.

merci de ta réponse.

merci d'avoir modifier les liens.

est-ce qu'il serait possible que tu me fasse plus tard des commentaires si je vais d'autres userform

sur la modification des liens cela me permettrait de mieux apprendre.

seb.

Bonsoir Seb,

Je crois que tu vas avoir un problème : dans le format 00:00:00 je pensais qu'i s'agissait de hh:mm:ss et non de centième.

Si c'est bien le cas, je n'ai jamais géré ce format. Il va falloir creuser sur le web !

Ca demande vérification mais je ne sais pas si excel sait afficher les centièmes, même s'il sait en tenir compte dans un éventuel calcul.

Bonjour egg, dans la partie modif participants quand je clic sur un dossard deja validé dans la textbox best temps il donne le nombre de points.

Je ne trouve pas ou je dois faire la modif du code.

Je te souhaite une bonne soirée.

sébastien.

Dans

Private Sub LBLISTING_DblClick(ByVal Cancel As MSForms.ReturnBoolean)

remplacer

.tb_Best_Temps = Cell2.Offset(0, 11)

par

.tb_Best_Temps = Cell2.Offset(0, 9)

re bonsoir Seb,

Pour le problème de temps, le bon format est mm:ss,00 dans cet ordre ET dans cette saisie (avec : et ,).

A voir ce que ça donne en vba.

A noter que pour le temps mini, il y a la fonction correspondante dans excel.

A+

Bonsoir egg, je connis la fonction min sur excel

pour mon cas présent elle se présente comme ceci sous excel, même si j'ai une cellule vide elle me donne un résultat

(K2)=MIN(G2;H2;I2;J2)

en vba moi je suis incapable de faire la formule

j'ai fait une macro mais pour moi cela est du chinois.

Sub trouve_min()

'

' trouve_min Macro

'

'

Range("K2").Select

ActiveCell.FormulaR1C1 = "=MIN(RC[-4],RC[-3],RC[-2],RC[-1])"

End Sub

Si tu as la solution en vba.

Rechercher des sujets similaires à "remplir textbox auto"