Module Classe TextBox pour certain Textbox

  • Initiateur de la discussion Initiateur de la discussion Regueiro
  • 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 !

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+
 
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

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 ?
 
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
 
- 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

  • Question Question
Microsoft 365 Probléme VBA
Réponses
8
Affichages
234
Réponses
3
Affichages
600
Réponses
3
Affichages
241
Retour