Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Addition de "mm:ss"

  • Initiateur de la discussion Initiateur de la discussion guy72
  • Date de début Date de début

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 !

guy72

XLDnaute Impliqué
Bonjour et bonne année à tous,

J'ai un UserForm avec :
En TextBox1 = Un titre.
En TextBox2 = Le temps.
Et ça 27 fois.
Est-il possible d'avoir une TextBox59 sur (le UserForm) avec le total du temps au fur et à mesure que je saisi le temps des TextBox2,+4,+6,+8.....etc .

Est-ce possible 😕
Merci de votre aide.

Voici, le code actuel pour que cela soit plus clair.

'Code du UserForm5
Private Sub CommandButton1_Click()
ENCODER
End Sub


'Code du module3
Sub ENCODER()
Application.ScreenUpdating = False
mot = UserForm5.Label34
For feuille = 3 To Sheets.Count
Sheets(feuille).Activate
Set Cherche = Cells.Find(What:=mot, lookat:=xlWhole)
If Not Cherche Is Nothing Then
Cherche.Activate
With ActiveCell
If UserForm5.TextBox1 <> "" Then
.Offset(2, 1) = UserForm5.Label2.Caption
.Offset(2, 2) = UserForm5.TextBox1.Value
.Offset(2, 3) = "0:" & UserForm5.TextBox2.Value
.Offset(2, 3).NumberFormat = "mm:ss"
End If
If UserForm5.TextBox3 <> "" Then
.Offset(3, 1) = UserForm5.Label3.Caption
.Offset(3, 2) = UserForm5.TextBox3.Value
.Offset(3, 3) = "0:" & UserForm5.TextBox4.Value
.Offset(3, 3).NumberFormat = "mm:ss"

et ainsi de suite j'usqu'à 27.......suite

.Offset(28, 3).End(xlUp)(3).NumberFormat = "h:mm:ss"
.Offset(28, 3).End(xlUp)(3).Value = WorksheetFunction.Sum(Range(ActiveCell.Offset(2, 3), ActiveCell.Offset(32, 3).End(xlUp)))
End With

End If
Next feuille

Sheets(2).Activate
Unload UserForm5
Application.ScreenUpdating = True
End Sub
 
Re : Addition de "mm:ss"

Bonjour Guy

regarde peut être le code ci dessous si cela peut t'aider, renvoie dans un textbox 3 les valeurs des textbox 1 et 2 sous le format hh:mm :

à placer dans le module de l'usf, pour chaque textbox concernés, se déclenche après la MAJ.
Code:
Private Sub TextBox1_AfterUpdate()
    If IsDate(TextBox1.Value) And IsDate(TextBox2.Value) Then _
        TextBox3.Value = Format(CDate(TextBox1.Value) + CDate(TextBox2.Value), "hh:mm")
End Sub

Attention, si le résultat risque d'être supérieur à 24h

bonne fin d'après midi
@+
 
Re : Addition de "mm:ss"

Bonsoir,
J'ai changer les N° de TextBox, car se ne sont que les TextBox paires qui contiennent des Chiffres.

Private Sub TextBox2_AfterUpdate()
If IsDate(TextBox2.Value) And IsDate(TextBox4.Value) Then _
TextBox6.Value = Format(CDate(TextBox2.Value) + CDate(TextBox4.Value), "hh:mm")
End Sub

J'ai 2:25 en TextBox2, 3:35 TextBox4, Et en TextBox6, je ne voit rien se calculer.

Rectification :

Si je vois le résultat, il faut cliquer dans la TextBox6, le problème c'est qu'il faut commencer à saisir à l'envers, TextBox4 et TextBox6 sinon rien n'apparaît dans TextBox6.

Mais le principe que je souhaiterais, c'est un affichage automatique dans TextBox6

Cordialement
Guy
 
Dernière édition:
Re : Addition de "mm:ss"

Bonjour Guy

je ne comprends pas quand tu dis : il faut saisir à l'envers le 4 puis le 6.... Dans le 6 c'est le résultat qui s'affiche, pour moi tu n'as rien à saisir...

As tu bien recopié ce code dans le module de l'USF, pour le textbox2 et le textbox4 ?

La procédure affiche un résultat en textbox6, quand tu sors du textbox 2 ou du 4, lorsqu'il y a eu modification, et que les 2 textbox (le 2 et le 4), contiennent bien une date... Alors le résultat se met automatiquement dans le 6....

bonne journée.
@+
 
Re : Addition de "mm:ss"


Bonjour,
(comme le montre mon module à mon 1er message).
Je veux dire que dans ma configuration, dans ma TextBox2, je saisis un temps,
dans la TextBox6, il faudrait le même résultat, puis......dans la TextBox 4, je saisi un autre temps, il faudrait que dans la TexteBox6, il y est le résultat de TextBox2 + TextBox4 sans avoir à cliquer dans la TextBox6.

Et ainsi de suite j'usquà 58.

Pour l'explication à l'envers :
Quand je saisis dans la TextBox2 en premier, puis dans la 4 ensuite, en 6, je n'ai rien.
Par contre :
Quand je saisis dans la TextBox4 en premier, puis dans la 2 ensuite, en 6, je (si je clic dans la 6) là je vois le total apparaître (bizarre).

En bref:
Je saisis des titres dans les TextBox impaires de 1 à 57.
Je saisis des temps dans les TextBox paires de 2 à 58.
Et en TextBox59 j'ai le total des TexyBox paires.

Tout ça peut ce faire finalement sans avoir un rapport avec le module3, tout dans mon UserForm5

Cordialement
Guy
 
Re : Addition de "mm:ss"

Re

regarde le fichier joint, un essai avec un module de classe, évite de recopier x fois le code pour chacun des textbox. Le module de classe est initialisé lors de l'initialisation de l'USF.

En plus lors de l'initialisation de l'USF, autorise seulement 5 caractères de saisie dans les textbox paires et bloque la cellule résultat (textbox7, l'utilisateur ne pourra rien y rentrer).

Dans le module de classe, 2 événements sont gérés pour TOUTES tes textbox se terminant par un nombre paire.

Evenement KeyPress, controle la saisie en autorisant que les chiffres et ":"

Evénement change, controle sur la position des ":" et addition de toutes les textbox paire => résultat dans la textbox7.

@+

Edition : modification de l'évenement change du module de classe, je permet d'afficher un résultat supérieur à 24h

2 ème édition fichier retiré, bogue dans la gestion des heures sup à 24....
 
Dernière édition:
Re : Addition de "mm:ss"

Bonsoir,
ça me convient parfaitement.

Je dois quand même garder mon Module3 pour inscrire les valeurs de toutes boites dans une autre page comme ça le fait actuellement ?
Par contre, j'allais te le demander, non, je souhaiterais justement avoir une alarme visuelle quand la TextBox7 ou sur le USF, enfin quelque chose qui se voit quand je dépasse 1h20mn.

Cordialement
Guy
 
Re : Addition de "mm:ss"

Bonjour

j'ai corrigé certains bogues afin de pouvoir envoyer dans le textbox 7 un résultat supérieure à 24 à heures, bien qu'à priori cela ne te servira pas... Mais cela pourra servir à d'autre. A mon avis on doit pouvoir mieux faire dans l'algorithme, mais bon, pas trouvé...

j'ai mis un message d'alerte (msgbox) au cas ou le résultat dépasserait 1h20.

Bonne journée
@+
 
Dernière édition:
Re : Addition de "mm:ss"


Bonjour,
Soit que je suis mal réveillé ou je ne comprend pas comment saisir le temps.
Si, je saisie 1:25 donc 1mn20s ça me met le message.
Les TextBox 2,4,6, ne sont elles formatées en mm:ss ?
Guy
 
Dernière édition:
Re : Addition de "mm:ss"

Re,

je remets un nouveau fichier, il contient maintenant 2 usf et 2 modules de classe. Le premier pour les calculs hh:mm et le 2ème pour les hh:mm:ss, j'en ais profité pour modifier légérement le controle lors de la saisie ainsi que la gestion du total des heures supérieure à 24.

Je retire le précédent fichier, puisque la version corrigée est dans celui ci.

A tester et à adapter dans ton projet.

bonne soirée.
@+

Edition : fichier supprimer, 3 versions dans mon post de 20h39.
 
Dernière édition:
Re : Addition de "mm:ss"


Bonsoir,
ça me convient presque.....
Je suis un peu embêté de te demander ça, mais, je ne saisi que des minutes et des secondes.
Est-il possible de formater les TextBox qu'en "mm:ss" sauf la 7 ?
Cordialement
 
- 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

Réponses
10
Affichages
661
Réponses
5
Affichages
909
Réponses
15
Affichages
779
Réponses
9
Affichages
385
Réponses
4
Affichages
586
Réponses
5
Affichages
573
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
450
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…