UserForm - Plusieurs problèmes

Bonsoir,

J'ai quelques soucis avec le UserForm de ce fichier :

1) Les textes inscrits dans les TextBox de ce UserForm sont plaqués vers le haut de la case. Est-ce possible qu'ils apparaissent au centre ou vers le bas ?

2) Est-il possible que l'utilisateur inscrive la date de naissance dans le champ correspondant du UserForm à un format quelconque - 1.2.2010, 01.2.2010, 1.02.2010 ou 01.02.2010 - et que cette date soit toujours inscrite au format 01.02.2010 (aligné à droite) sur la feuille ?

3) Est-il possible que lorsque l'on tape les premières lettres de l'autorité d'engagement dans le champ correspondant du UserForm, les autorités d'engagement inscrites sur la feuille "Autorités d'engagement" soient proposées en dessous afin que celle que l'on veut inscrire puisse être sélectionnée - un peu comme lorsque l'on inscrit les premières lettres d'une formule dans une cellule et que plusieurs formules sont proposées par Excel ? Il faudrait quand-même, si nécessaire, que l'on puisse inscrire une autorité d'engagement qui ne serait pas dans la liste (alors la possibilité de rajouter cette autorité à la liste est déjà prévue) ?

A vous relire.

Bonjour

J'ai un problème avec ton fichier qui ne veut pas s'ouvrir. Peux-tu le renvoyer ?

Amicalement

Salut Dan,

Nouveaux essais :

ou bien ...

Re,

rien à faire je n'arrive pas à lire ton fichier.

Je tenterai du boulot demain on ne sait jamais.

Amicalement

Re,

1) Les textes inscrits dans les TextBox de ce UserForm sont plaqués vers le haut de la case. Est-ce possible qu'ils apparaissent au centre ou vers le bas ?

Non (enfin je n'en connais pas) pas de solution si ce n'est de jouer sur les hauteurs de police de caractères. Le mieux est de prendre la dimension par défaut de l'objet lorsque tu le crées dans l'USF.

2) Est-il possible que l'utilisateur inscrive la date de naissance dans le champ correspondant du UserForm à un ....

Dans ta feuille je vois les formats comme ceci JJ/mm/AA. C'est ce que tu veux au final dans la feuille ou c'est JJ.MM.AA. En gros, tu veux utiliser les points dans l'USF et trouver ta date au bon format dans la feuille ?

A te relire

Salut Dan,

Merci pour ta réponse.

Au final, je voudrais le même format que celui en place dans la feuille, du genre 01.02.2010.

Mais comme il se peut que les utilisateurs inscrivent dans le UserForm des formats différents - tels que ceux indiqués dans ma première demande - j'aurais voulu que le format soit corrigé automatiquement.

Bonne journée.

Re,

Autre proposition. On fait un contrôle sur l'information entrée dans cette textbox.

Dans la Private Sub CommandButton1_Click(), juste après l'instruction Application.ScreenUpdating = False, mets ce code :

If Not IsDate(TextBox1) Then
    MsgBox "Votre date n'est pas au format mm/dd/yy !!"
    TextBox1.SetFocus
    Exit Sub
End If

ensuite, dans les propriétés de la textbox1, va sur la propriété TEXT et mets ceci --> dd/mm/yy pour spécifié la manière d'entrer cette donnée

Ce serait ok cela ?

A te relire

Salut Dan,

Ta solution premettrait de cntrôler que le texte entré soit bien une date - c'est déjà une très bonne chose en plus de ce que faisait mon code - mais je demandais si ce n'est pas possible de transformer un format de date quelconque en format de date précis (et aligné à droite). N'est-ce vraiment pas possible ?

Bonne soirée.

Bonsoir Yvouille, Dan

contrôle de saisie de la date

la propriété MaxLength du textbox1 est mise à 8

Salut Bob,

Ta solution est également très intéressante, mais elle ne répond pas non plus entièrement à ce que je souhaitais.

Si l'on remplit le champ du TextBox1 comme tu le préconises, je trouve gênant ces // qui viennent s'inscrire automatiquement. Personnellement je n'ai absolument pas l'habitude d'inscrire la date ainsi et je me trompe à chaque fois. Comme différents utilisateurs sont appelés à utiliser ce fichier, je pense que plus d'un serait mal à l'aise avec cette nouveauté.

J'ai donc essayé de supprimer toute la macro Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) et le résultat commence à devenir très intéressant. Si j'inscris par exemple 01.02.10, la date au bon format (01.02.2010) est reportée et de plus alignée à droite.

Cependant, pour ne quand même pas pouvoir inscrire la date à un format quelconque, j'aurais préféré que l'utilisateur soit obligé d'inscrire l'année complète. J'ai alors essayé de modifier ta ligne If Not IsDate(TextBox1) Or Len(TextBox1) <> 8 Then par If Not IsDate(TextBox1) Or Len(TextBox1) <> 10 Then - ainsi que la propriété "MaxLength" du TextBox1, mais ça ne passe pas.

Pourrais-tu encore m'aider à réaliser cela ?

Bonne soirée.

Bonsoir Yvouille

je viens d'essayer ce que tu as fait.

le problème , c'est que chez moi cela ne fonctionne pas

si je remplace les // par des .. , cela te conviendrait ou non

ce qui donnerait dans le textbox1 01.02.2010 et sur la feuille , cela serait écrit comme les autres dates de naissance

c'est à dire 01/02/2010

Salut Bob,

Merci pour ta réponse.

Je crois que l'on a un un problème de format par défaut

Chez moi les dates sont inscrites dans la feuille au format 01.02.2010. D'ailleurs si j'utilise ta solution avec la saisie automatique 01/02/10, le format finalement visible est 01.02.2010 (et qui plus est, aligné à droite).

BOB71AU a écrit :

si je remplace les // par des .. , cela te conviendrait ou non

Si cette saisie est automatique, pas vraiment, car nous avons l'habitude d'inscrire nous-mêmes les points et il faut toujours reprendre la saisie. Mais si la saisie 01.02.2010 était non automatisée - c'est à dire que nous devions écrire nous-mêmes les points - ça serait parfait.

Comme autre solution, ne serait-il pas possible de saisir un texte sans se soucier du format-date et de transformer la saisie 01.02.2010 en un format date aligné à droite par la suite, sur la feuille elle-même ?

A te relire.

Bonsoir Yvouille

j'ai modifié pour mettre la date sous forme dd mm yyyy

pour le format avec les points au lieu de //, je ne peux pas tester

a toi de me dire a quel format est le résultat

tu ne peux saisir que des nombres sinon les lettres sont remplacés par des ....

sinon j'ai mis trois textbox pour la saisie a droite du textbox1 pour essai

Salut Bob,

Ton nouveau code fonctionne à merveille. Si j'inscris la date au format 01.02.2010 dans le formulaire, ça reprend exactement ce format dans la feuille. C'est exactement ce que je désirais.

Merci infiniment pour ta grande patience et ton savoir-faire. Tu me tires une sacrée épine du pied.

Je n'ai plus testé tes essais avec trois champs pour le jour, le mois et l'année puisque ton autre solution me convient parfaitement.

Encore un grand merci et bonnes salutations.

Bonsoir Yvouille

content que cela te convienne

pour ton autre post

remplace impression.select par activate

a+

Pour mon autre post, je présume que tu parles de celui avec les "Select Case".

J'ai alors essayé de remplacé dans le code Private Sub CommandButton2_Click le passage Sheets("Impression").Select par Sheets("Impression").Activate, mais ça ne change rien.

Parlais-tu d'autre chose ?

S'il s'agit bien de ce post, voudrais-tu bien me répondre sur cet autre fil, s'il-te-plait ?

A te relire.

Rechercher des sujets similaires à "userform problemes"