VBA Identifier une textbox

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

F

fourmidiable

Guest
Bonjour,

Ca fait quelques jours que je travaille sur un problème et j'ai besoin d'un coup de main.
J'ai un fichier excel avec plusieurs userform qui contienne chacune plusieurs textbox. Chaque Userform se ressemble mais sont dédiée à une application spécifique.
Dans chaque Userform, il y a une textbox de saisies. Je fais une même opération dans chaque textbox et pour simplifier mon programme j'aimerais créer une fonction qui reprenne à chaque fois l'opération.

J'ai créé une fonction dans un module
Function_set_focus (fenetre, element)

Ma fonction:
Public Function Function_set_focus (fenetre as string, element as sting)
.....


Mon problème c'est l'adressage de la fonction ci-dessous:

Userforms(userform1).Controls(Textbox1).setfocus
End function

Je ne trouve pas la syntaxe pour adresser correctement la textbox sur laquelle je veux travailler. A chaque fois soit ça ne fonctionne pas, soit j'ai une erreur.

Vous pouvez m'aider?

merci

Dave
 
Re : VBA Identifier une textbox

Bonjour Fourmidiable, bienvenue sur XLD,

A mon avis c'est une procédure Sub qu'il faut utiliser et appeler dans chaque UserForm par Call Set_Focus.

S'il n'y a à chaque fois qu'un seul UserForm ouvert, on peut utiliser UserForms(0) :

Code:
Sub Set_Focus()
UserForms(0).Controls("TextBox1").SetFocus
End Sub

PS : bien sûr vous le savez, l'écriture basique est :

UserForm1.TextBox1.SetFocus

Edit : n'oubliez pas qu'une procédure Sub, comme une Function, peut avoir des arguments si vous voulez la paramétrer :

Code:
Sub Set_Focus(Ctl As String)
UserForms(0).Controls(Ctl).SetFocus
End Sub

appelée par exemple par Call Set_Focus("TextBox1")

A+
 
Dernière édition:
Re : VBA Identifier une textbox

Bonjour Fourmidiable, bienvenue sur XLD,

A mon avis c'est une procédure Sub qu'il faut utiliser et appeler dans chaque UserForm par Call Set_Focus.

S'il n'y a à chaque fois qu'un seul UserForm ouvert, on peut utiliser UserForms(0) :

Code:
Sub Set_Focus()
UserForms(0).Controls("TextBox1").SetFocus
End Sub

PS : bien sûr vous le savez, l'écriture basique est :

UserForm1.TextBox1.SetFocus

Edit : n'oubliez pas qu'une procédure Sub, comme une Function, peut avoir des arguments si vous voulez la paramétrer :

Code:
Sub Set_Focus(Ctl As String)
UserForms(0).Controls(Ctl).SetFocus
End Sub

appelée par exemple par Call Set_Focus("TextBox1")

A+


Merci beaucoup j'ai appliqué tes conseils et ça marche parfaitement.
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

N
Réponses
4
Affichages
1 K
ninos72
N
Retour