Contrôle saisie dans un UserForm

G

Gérard

Guest
Bonjour,

Quel format faut-il définir pour saisir un pourcentage dans un UserForm ?

1. Format Control
GestionProduit.PMM.Value = Format("Classeur.xls").Sheets("Feuil1").Cells(12,10), "0.00%")

Lorsque je saisi une valeur dans le Control 3,25 par exemple, j'ai toujours un message comme quoi je dois saisir une valeur numérique.

2. Contrôle saisie
Private Sub PMM_Change()
If Not IsNumeric(PMM) Then
With PMM
Call ValeurNumerique 'Msgbox
.Value = 0
.SetFocus
End With
End If
End Sub

3. Affichage après saisie
Private Sub PMM_AfterUpdate()
PMM = Format(PMM, "0.00%")
End Sub
 
G

Gérard

Guest
Que je saisisse le point ou la virgule, j'ai le même problème.

Je vais aller un peu plus loin dans ma question. Comment gère t-on les masques de saisie dans les UserForms ?

Dans VB 6.0, il existe la propriété Mask du contrôle mskSSN pour définir un masque de saisie qui permet de forcer l'utilisateur à saisir selon un modèle prédéfini. Je ne vois pas d'équivalent avec VBA sous excel.

Merci d'avance pour votre aide.
 
A

Abel

Guest
Salut Gérard,

Pas trouvé.

Mais on peut contourner.
Dans le UserForm, crée plusieurs TextBox qui seront formatés à l'aide des propriétés.
Ces TextBox peuvent être collées les unes aux autres. On ne voit alors quasiment pas de séparation.
Par exemple, pour une date de type JJ/MM/AAAA, on fait 3 TextBox avec comme propriétés :
AutoTab = true
AutoSize = true
MaxLength = 2 (4 pour la 3ème TextBox)

On peut agrémenter en entrant une petite explication dans ControlTipText qui a pour effet de faire afficher une petite info bulle.

Il suffit après de concaténer les informations entrées dans les TextBox.

En espérant que cela t'aide.
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 611
Messages
2 090 226
Membres
104 452
dernier inscrit
hamzamounir