Mettre une textbox en majuscules

patrom Messages postés 34 Date d'inscription dimanche 21 décembre 2003 Statut Membre Dernière intervention 16 décembre 2004 - 29 janv. 2004 à 18:40
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 - 30 janv. 2004 à 06:11
Pour passer le contenu de mes textbox sur l'evt lostfocus, j'appelle la proc ci-dessous MAJ(le nom de ma textbox)

or j'ai le message Type Mismatch alors que je passe bien une textbox en paramètre.

Private Sub MAJ(Zone As TextBox)
'passe le paramètre en majuscules
Zone = UCase(Zone)
End Sub

Pourquoi ?

NB, ce type d'appel fonctionne sous VBA Access

Merci de votre aide

6 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
29 janv. 2004 à 19:20
Fait plutôt ceci :

Zone.Text = UCase(Zone.Text)

Et vérifie que ton textbox passé en paramètre est valide !

DarK Sidious

[Responsable de la rubrique API et responsable VB du site www.ProgOtoP.com]
0
cs_rene38 Messages postés 1858 Date d'inscription samedi 29 juin 2002 Statut Membre Dernière intervention 17 octobre 2013 11
29 janv. 2004 à 19:29
Bonsoir

Problème de syntaxe avec/sans parenthèses.
Deux possibilités :

Call MAJ(Text1)

MAJ Text1
0
cs_rene38 Messages postés 1858 Date d'inscription samedi 29 juin 2002 Statut Membre Dernière intervention 17 octobre 2013 11
29 janv. 2004 à 19:38
ou encore :

Private Function MAJ(Zone As TextBox)
'paramètre passé par référence
Zone = UCase(Zone)
End Function

Private Sub Text1_LostFocus()
Dim x As Integer
x = MAJ(Text1)
End Sub
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
29 janv. 2004 à 20:16
Rene38 >> tu as oublié une valeur de retour de ta fonction MAJ si je ne me trompe... non ?

DarK Sidious

[Responsable de la rubrique API et responsable VB du site www.ProgOtoP.com]
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_rene38 Messages postés 1858 Date d'inscription samedi 29 juin 2002 Statut Membre Dernière intervention 17 octobre 2013 11
30 janv. 2004 à 01:20
DarK Sidious
Le paramètre zone est passé à la fonction MAJ par référence (ByRef par défaut). La fonction MAJ effectue donc son travail sur la TextBox qui lui est passée en paramètre -ici, Text1.
Quant à la valeur de retour, on s'en moque du moment que le travail est fait !
La variable x est utile pour l'appel de la fonction mais sa valeur n'a aucun intérêt.

Si on est puriste, on écrit bien sûr :
Private Function MAJ(Zone As TextBox) As CeQuOnVeut
et Dim x As LaMemeChose

Enfin, l'essentiel pour patrom c'est que ça marche.

Ce que je voulais rappeler, c'est la différence de syntaxe entre les appels de Sub (avec ou sans Call) et de Function.
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
30 janv. 2004 à 06:11
ok, merci pour cette précision Rene38 ! Je pensais qu'en VB, lorsqu'on faisais un appel de fonction, il fallait absolument que la fonction renvoie une valeur, comme en C en somme !

DarK Sidious

[Responsable de la rubrique API et responsable VB du site www.ProgOtoP.com]
0
Rejoignez-nous