XL 2013 [Résolu] Problème d'affichage valeur

Lone-wolf

XLDnaute Barbatruc
Bonjour à toutes et à tous :)

J'ai un souci avec ce module de classe

VB:
Option Explicit

Public WithEvents TbBox As MSForms.TextBox

Private Sub TbBox_Change()
Dim i&, Total#


    Total = 0
  
    For i = 1 To 12
        Set TbBox = UsfMoyennes.Controls("TextBox" & i)
    Next i
        If TbBox <> "" Then Total = Total + TbBox

    With UsfMoyennes
        .TxtNote = WorksheetFunction.Average(CDbl(Total))
        .TxtNote = Replace(.TxtNote.Value, ",", ".")

        If .TxtNote > 4 Then
            .TxtTest = "Réussi"
        Else
            .TxtTest = "Echoué"
        End If
    End With
End Sub

Dans l'userform en entête : Dim TbBox(1 To 12) As New NotesClasses, et dans Initialize

For k = 1 To 12
Set TbBox(k).TbBox = Me.Controls("TextBox" & k)
Next k

En insérant les données, rien ne s'afiche dans la textbox TxtNote.
 
Dernière édition:

Lone-wolf

XLDnaute Barbatruc
Bonjour Gerard :)

Voici le fichier en question. J'ai fait en attendant d'autres modifications, mais toujours rien.

Notes: les 12 textbox ne sont pas obligatoirement toutes remplies, puisqu'il y s'agit de tests éffectués de façon irrègulière.
 

Pièces jointes

  • Classeur Exemple.zip
    2.6 MB · Affichages: 18

job75

XLDnaute Barbatruc
Re,

Le code du module de classe :
Code:
Public WithEvents TbBox As MSForms.TextBox

Private Sub TbBox_Change() 'AfterUpdate() ne fonctionne pas
Dim i%, x$, s#, n%
TbBox = Replace(TbBox, ".", Application.DecimalSeparator)
With TbBox.Parent
    For i = 1 To 12
        x = .Controls("TextBox" & i)
        If IsNumeric(x) Then s = s + CDbl(x): n = n + 1
    Next
    If n = 0 Then .TxtNote = "": .TxtTest = "": Exit Sub
    .TxtNote = s / n
    .TxtTest = IIf(s / n > 4, "Réussi", "Echoué")
End With
End Sub
A+
 

Discussions similaires

Statistiques des forums

Discussions
312 191
Messages
2 086 051
Membres
103 108
dernier inscrit
Captain NRJ