Déclaration d'une TextBox pour utilisation sans une sous-procédure

Tibo2

XLDnaute Nouveau
Bonjour à tous,

J'ai un petit problème, j'ai crée un userform avec un certain nombre de TextBox. Sur 10 TextBox je dois écrire les mêmes lignes de code: à savoir réécrire la saisi de l'utilisateur en pourcentage.

Mon code initiale est le suivant:
Code:
TB_ProfilRouleur_20 = (Replace(TB_ProfilRouleur_20, ".", ","))
TB_ProfilRouleur_20.Value = Format(TB_ProfilRouleur_20.Value, "0%")
TB_ProfilRouleur_20 = TB_ProfilRouleur_20.Value

If Left(TB_ProfilRouleur_20, Len(TB_ProfilRouleur_20) - 1) < 0 _
    Or Left(TB_ProfilRouleur_20, Len(TB_ProfilRouleur_20) - 1) > 100 Then
    
    MsgBox "Le texte saisi n'est pas valide, saisir un chiffe uniquement entre 0 et 1"
    TB_ProfilRouleur_20.Value = 0
    TB_ProfilRouleur_20.Value = Format(TB_ProfilRouleur_20.Value, "0,00%")
    TB_ProfilRouleur_20 = TB_ProfilRouleur_20.Value
    
End If

Il marche bien aucun problème. Cependant je voudrai créer une procédure qui fasse cela. Donc j'ai écrit:
Code:
Private Sub TB_ProfilRouleur_20_Exit(ByVal Cancel As MSForms.ReturnBoolean)
SaisiTxtProfilRouleur (TB_ProfilRouleur_20)
End Sub

Public Sub SaisiTxtProfilRouleur(TxtBox As Control)

TxtBox = (Replace(TxtBox, ".", ","))
TxtBox.Value = Format(TxtBox.Value, "0%")
TxtBox = TxtBox.Value

If Left(TxtBox, Len(TxtBox) - 1) < 0 _
    Or Left(TxtBox, Len(TxtBox) - 1) > 100 Then
    
    MsgBox "Le texte saisi n'est pas valide, saisir un chiffe uniquement entre 0 et 1"
    TxtBox.Value = 0
    TxtBox.Value = Format(TxtBox.Value, "0,00%")
    TxtBox = TxtBox.Value
   
End If
End Sub

Une message d'erreur apparait dans TB_ProfilRouleur_20_Exit est me dit qu'un objet est requis pour faire marché ma procédure... je ne comprends pas trop... comment dois-je déclarer TxtBox.

Merci d'avance à la personne qui pourra m'éclairer,

Bonne journée
 

Pierrot93

XLDnaute Barbatruc
Re : Déclaration d'une TextBox pour utilisation sans une sous-procédure

Bonjour,

ceci fonctionne chez moi, 2 procédures placées dans le module de l'usf :
Code:
Option Explicit
Private Sub test(tx As Control)
MsgBox tx.Name
End Sub
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
test TextBox1
End Sub

bonne journée
@+
 

Dranreb

XLDnaute Barbatruc
Re : Déclaration d'une TextBox pour utilisation sans une sous-procédure

Bonjours
Enlevez simplement les parenthèses. Elle ne sont requise que pour une Function ou pour un appel de procédure précédé de Call.
Si on en met quant même alors qu'il n'en faut pas il peut se mettre à construire, en tant que paramètre, au lieu de l'objet requis, une collection d'objet qui n'en contient en l’occurrence qu'un, ce qui n'est pas la même chose.
cordialement.
 

Tibo2

XLDnaute Nouveau
Re : Déclaration d'une TextBox pour utilisation sans une sous-procédure [RESOLU]

Merci à Pierrot et Dranreb,

C'était bien les parenthèses. J'avais oublié d'apprendre ce détail...

ça marche parfaitement.

Bonne journée à vous 2,
 

Discussions similaires

  • Question
Microsoft 365 TEXTBOX
Réponses
7
Affichages
510
Réponses
3
Affichages
166

Membres actuellement en ligne

Statistiques des forums

Discussions
314 645
Messages
2 111 536
Membres
111 183
dernier inscrit
angelique76120