Format de la valeur saisie dans une textbox

Bonjour,

Je débute en VBA et depuis 13 H 00 je cherche comment "imposer" des formats dans un ActiveX "TextBox".

Je m'explique, j'ai mon code de ma textbox1 qui alimente la cellule "C2" ainsi :

Private Sub TextBox1_Change()

[C2] = TextBox1

End Sub

Mais voila je cherche du code pour imposer :

1) - je veux une saisie d'une date dans le textbox le format soit jj/mm/aaaa par exemple en C2

2) - si un numéro de téléphone saisie dans la textbox le format soit: 00.00.00.00.00 par exemple en C4

3) - idem si NOM impose ou transforme en Majuscule entièrement en C6

4) idem si prénom la 1ère lettre en majuscule le reste en minuscule.en C8

MERCI

@++++

Bonjour

Choisi :

Private Sub CommandButton1_Click()
   'Range("C1") = Format(TextBox1, "dd/mmmm/aaaa")
    'Range("C4") = Format(TextBox1, "0#"" ""##"" ""##"" ""##"" ""##")
    'Range("C6") = WorksheetFunction.Proper(TextBox1)
    'Range("C8") = UCase(TextBox1)
    'Range("C10") = LCase(TextBox1)
End Sub

Bye !

Bonsoir,

Je n'arrive pas à comprendre ou il faut que je mette ton code fournit pour mes textbox sur mon userform1 ?

Je pense que je ne cherche pas au bon endroit !

pour cela je t'ai mis le classeur que je suis entrain de créer pour la saisie des licenciés d'un club de sport.

Avec des date de naissance.

des NOM propre

des numéros dde téléphone

....etc......

https://www.cjoint.com/c/EHkqmFR7SdZ

MERCI

pour ta contribution

@++++

Je pense que tu es mal parti dans l’écriture du code de ton userform.

Je te propose une autre approche, à mon avis plus rationnelle.

On n'écrit pas dans la feuille de calcul à chaque saisie de textBox, mais on attend d'avoir rempli l'ensemble l'userform et c'est le clic sur le bouton ''Nouveau contact'' qui déclenche toutes les écritures.

Mais ce n’est qu’une proposition.

Bye !

Bonjour,

MERCI pour ton aide.

cela marche à merveille, je viens d'adapter en fonction de mes attentes.

Mais seul la mise en forme date ne fonctionne pas :

L'écriture en fonction de la base et du userform devrait être :

Cells(lgn, "O") = Format(TextBox15, "dd/mmmm/aaaa")

Si tu as une idée MERCI

@++++

En passant par hasard : yyyy (mieux que aaaa) !

Bonne journée

MFerrand a écrit :

En passant par hasard : yyyy (mieux que aaaa) !

Bonne journée

Bonjour MFerrand et MERCI

oui il s'agit bien de modifier "aaaa" en "yyyy" et cela fonctionne !

J'ai un autre petit soucis en format que j'appellerais numéro de téléphone sous la forme : xx xx xx xx xx

code : Format(Val(TextBox9), "0#"" ""##"" ""##"" ""##"" ""##")

si je ne met rien dans la textbox j'ai dans la base 00 00 00 00 00 et mon souhait serait de laisser vide !

si je met comme code : Format(Val(TextBox9), "##"" ""##"" ""##"" ""##"" ""##")

j'ai bien vide si je ne met rien mais si je met un numéro sous [01 50 50 50 50] j'ai [1 50 50 50 50]

Plus le zéro du début du numéro pas le but également même si .....

Une idée

Encore MERCI

@++++

Bonjour à tous

@ MFerrand : merci pour la correction.

@ malpas :

remplace :

cells(lgn, "J") = Format(Val(TextBox9), "0#"" ""##"" ""##"" ""##"" ""##")

Par :

    If TextBox9 = "" Then
        Cells(lgn, "J") = ""
    Else
        Cells(lgn, "J") = Format(Val(TextBox9), "0#"" ""##"" ""##"" ""##"" ""##")
    End If

Re-Bjr,

Je viens de compléter mon formulaire et j'aurais besoin de votre aide :

https://www.cjoint.com/c/EHlnJrjl1BG

sur 2 choses :

1) - je souhaiterais que si mon ComboBox1 est = Mr L'optionbutton1 soit = Cocher "Masculin"

et si combobox est = mme l'Optionbutton2 soit = cocher "féminin".

2) - je souhaiterais que si mon checkbox est pas coché mon textbox18 n'apparaisse pas ainsi que le label20 "surnom FB"

en revanche si cocher le Textbox18 est disponible et le label20 également.

MERCI

@++++

Voilà :

Bye !

Re-Bjr,

MERCI, très formateur d'échanger avec toi car j'essaie de faire par moi-même et si je bloque au lieu de faire une "allergie" je te questionne puis "je décortique ton code".

Encore 2 / 3 petites questions tu verras j'ai essayais avec code neutralisé en vert " ' ".

1) - je souhaiterais que dans la textbox24 s'affiche la somme des textbox19 + textbox20 + textbox21 + textbox22 + textbox23

2) - je souhaiterais que le textbox17 affiche :

- si checkbox1 = faux ; le prix issu de la matrice se trouvant dans la feuille "para" en E2 : F13

- si checkbox1 = vrai ; le prix issu de la matrice se trouvant dans la feuille "para" en E15 : F26 (demi tarif)

3) ensuite il faut comparer Textbox24 et Textbox17

si Textbox17 < textbox24 message "Il manque de l'argent !"

si Textbox17 > textbox24 message "Il y a de l'argent en trop!"

Attention, message d'alerte mais pas bloquant : pouvoir continuer la saisie de ce licencié.

https://www.cjoint.com/c/EHlqQhpva1Z

MERCI

@+++++

Nouvelle version à tester.

Pour la 3° demande, il vaudrait peut-être mieux mettre la comparaison et le message dans la macro qui valide le contact, puisque ce n’est pas bloquant. La saisie serait plus agréable…

Tu verras …

Bye !

Re-Bonsoir,

Mdr oui-oui il faut absolument mettre la comparaison et le message sur le bouton de validation du contact sinon je vais devenir sourd car à chaque saisie d'un chiffre .......

Sinon, MERCI cela correspond a mes attentes !

Bon maintenant je vais aller voir le code, j'ai préféré répondre rapidement car quasi inutilisable avec cette comparaison sur le textbox direct !

MERCI @++++

Il me semblait bien...!

Nouvelle version.

Bye !

Bonjour,

MERCI, effectivement cela va mieux au niveau du message d'alerte !

il est ainsi moins intrusif.

Un petit soucis au niveau 1/2 tarif [textbox17 qui est alimenté par combo4 plage suivant check1 (1/2 tarif)]

la sélection (true) du check1 donne l'inverse, c'est à dire plein tarif affichage dans un premier temps.

J'ai bien inversé mais j'ai un petit soucis : dans un premier temps l'affichage plein tarif en textbox me donne le prix 1/2 tarif. Il faut que "coche" puis "décoche" le checkbox1 pour avoir un affichage plein tarif.

https://www.cjoint.com/c/EHmepdQDShZ

Encore MERCI

@++++

Bonjour

La mise à jour du ‘’montant’’ , (label 17) se fait lors du clic sur la boîte à cocher (CheckBox1) mais aussi lors d’un changement de la liste déroulante ‘’Catégorie’’ (ComboBox4).

Si tu veux inverser les tarifs, il te faut donc modifier les références qui sont dans le code de ces deux contrôles.

OK ?

Bye !

Re-Bjr,

Ok je te remercie, comme souvent je pense je tournais en rond pas loin du bon code, mais ......

Donc MERCI

J'ai du également dans ce cas intervertir le message de sortie.

Bon je rentre plus maintenant dans le confort pour mes mamies qui font saisir ! Lol

Mon souhait :

1) - je "saisie" texte du combobox4 automatiquement je vais sur textbox10

idem

2) - je "saisie" texte du combobox3 automatiquement je vais sur textbox16

3) - pour la saisie de la date, j'ai trouvé sur internet un userform qui se nomme "FormCal" que j'ai importé dans le Fichier.

Le code qui "l'accompagne est le suivant :

Sub choix_date()

'Cette macro appelle le calendrier pour le choix de la date

Dim Jour As Date

If IsDate(ActiveCell.Value) Then

Jour = FormCal.Calendrier(ActiveCell.Value)

Else

Jour = FormCal.Calendrier(Date)

End If

If Jour <> 0 Then ActiveCell.Value = Jour

Range("C5").Select

End Sub

Je souhaiterais le mettre pour faciliter la saisie, c'est à dire quand j'entre sur la textbox15 le userform "FormCal" s'ouvre

Ensuite lorsque clic sur Bouton "OK" du UserForm "FormCal" la date se colle dans le textbox15 et je vais me positionner sur le checkbox1 mais attention sans l'activer.

https://www.cjoint.com/c/EHmkhlAvb5Z

MERCI

@++++

Nouvelle version

Bye !

Re-Bjr,

C'est bien cela que je souhaitais, je teste et reviendrais !

MERCI

@+++++

Re-Bjr,

MERCI cela marche à merveille !

toujours dans un soucis de faciliter la tâche aux personnes qui vont faire la saisie, mais aussi pour éviter des erreurs de saisies depuis un peu + d'une heure j'essaie de mettre en place du code pour aider la saisie du code postal et de la commune.

En effet environ 85 % des licenciés résident dans le département du siège du club (attention il ne faut pas oublier les 15 % restant on verra un peu plus loin la conséquence) donc on peu automatiser partiellement la tâche de saisie à hauteur de 85 %.

Où je veux en venir, tout simplement dans la m^me ergonomie que certain formulaire d'inscription sur Internet; je souhaiterais que le combobox6 [code postal] "alimente" le combobox5 [Commune] en fonction de la matrice de données qui se trouve dans la feuille "CodePost" dans la plage de données A2:B262

attention il faut aussi bien que pour la saisie du code postal que de la commune pouvoir faire une saisie manuelle pour mes 15 % de licenciés "hors département".

A la "validation" de la saisie du combobox5 (commune) il serait souhaitable que le curseur soit le zone de saisie suivante c'est à le textbox6 (N° Fixe)

https://www.cjoint.com/c/EHmpMF5IYgZ

MERCI

@++++

Rechercher des sujets similaires à "format valeur saisie textbox"