Module Classe TextBox pour certain Textbox

Regueiro

XLDnaute Impliqué
Bonsoir le Forum
Je cherche à appliquer sur certain Textbox la valeur numérique.
Voici mes codes
Modules de classes :
Code:
Public WithEvents TboxNum As MSForms.TextBox
Private Sub TboxNum_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
  Case 44
    If InStr(TboxNum, ".") = 0 Then KeyAscii = 46 Else KeyAscii = 0
  Case 46
    If InStr(TboxNum, ".") > 0 Then KeyAscii = 0
  Case Is < 48, Is > 57
    MsgBox "Touche non autorisée !"
    KeyAscii = 0
End Select
End Sub

Le code dans mon USF
Code:
Private Sub CB_RAZ_Click()
Dim Ctrl As Control
Dim k As Byte

    For Each Ctrl In Me.Controls
        Select Case TypeName(Ctrl)
            Case "TextBox"
            Ctrl.Value = ""
        End Select
Next Ctrl
Me.Controls("Textbox100").SetFocus
'Boucle sur les TextBox jq 105,102 a été supprimer par le Combobox
' Récupère les zones de texte à formater en décimales ("." ou "," comme séparateurs)

For Each i In Array(101, 103, 104, 105)
    For Each Ctrl In Me.Frame1.Controls

        
            If TypeName(Ctrl) = ("TextBox" & i) Then
                ReDim Preserve TBNum(k)
                Set TBNum(k).TboxNum = Ctrl
                 k = k + 1
                 
    End If

Next Ctrl
Next i

End Sub
Le code fonctionne si je supprime la boucle i.

Pour info mes Textbox sont créer dynamiquement.
MErci de votre Aide
A+
 

Regueiro

XLDnaute Impliqué
Re : Module Classe TextBox pour certain Textbox

Bonsoir le Fil, Danreb
Je te joins le fichier que j'avais omis.
Dans mon code je n'ais pas besoin de mettre l'instruction du milieu.
Il marche pour tous les textbox.
Mais j'aimerais uniquement pour certains soit :

For Each i In Array(101, 103, 104, 105)

Mode d'emploi.
Sur l'onglet rouge " Sortie Matière "
Bouton rouge lance USF
Dans l'USF
Bouton Rouge RAZ
Merci
Le code marche car j'ai enlevé la boucle For Each i in array
 

Pièces jointes

  • XLD_Sortie Matière Acier V02.xlsm
    60.6 KB · Affichages: 33

Dranreb

XLDnaute Barbatruc
Re : Module Classe TextBox pour certain Textbox

Je ne peux pas tester ça: je n'ai pas de ListObject dans ma version. Désolé.
En mettant For Each i In Array(101, 103, 104, 105) au lieu de For Each Ctrl In Me.Frame1.Controls,
Set TBNum(k).TboxNum = Me.Frame1.Controls("TextBox" & i) ça ne passe pas ?
 

Regueiro

XLDnaute Impliqué
Re : Module Classe TextBox pour certain Textbox

Re
Parfait ça marche.
J'avais également trouver une autre parade avec la propriété TAG
Code:
For Each Ctrl In Me.Frame1.Controls
If TypeName(Ctrl) = "TextBox" Then
If Ctrl.Tag = "NUM" Then
Au préalable lors de la création dynamique de mes Textbox & i. Tag = "NUM"

Merci
Bonne Soirée
 

Discussions similaires

Réponses
29
Affichages
958

Statistiques des forums

Discussions
312 323
Messages
2 087 297
Membres
103 511
dernier inscrit
mickael.das