Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > IHM
IHM Ce forum est dédié aux questions relatives à la création de formulaires et d'états, avec ou sans code VBA, et macros.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/03/2011, 12h17   #1
Membre éprouvé
 
Avatar de dumas.blr
 
Homme Jean-Yves DUMAS
Consultant informatique
Inscription : juin 2010
Messages : 325
Détails du profil
Informations personnelles :
Nom : Homme Jean-Yves DUMAS
Âge : 48
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Consultant informatique
Secteur : Conseil

Informations forums :
Inscription : juin 2010
Messages : 325
Points : 447
Points : 447
Par défaut Création d'un masque de saisie dynamique

Bonjour,

Je dois, dans un champ texte, saisir un n° de recommandé.

Problématique : Ce champ peut avoir 2 formats différents :
1) format Français ( ex : 1A 048 115 2535 6)
2) Format international ( ex : RR 12 345 678 5 KR).

Je souhaite donc utiliser un masque de saisie qui s'adaptera en fonction du 1er caractère tapé dans le champ.

Voici l'algorithme envisagé :
Le premier caractère doit forcément être alphabétique ou numérique
(inputmask par défaut = "A")
Si le premier caractère est un chiffre, alors :
inputmask = "0L\ 000\ 000\ 0000\ 0\;0;"
sinon
inputmask = "LL\ 00\ 000\ 000\ 0\ LL;0;"

J'ai essayé d'utiliser l'évènement KeyPress, mais celui-ci ne marche pas comme je le souhaiterais :
Lorsque je tape le 1er caractère, le masque reste à "A", ensuite le caractère suivant remplace le 1er caractère (le masque de saisie change bien) et les caractères suivants remplacent systématiquement le 1er.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
Private Sub Texte24_KeyPress(KeyAscii As Integer)
    With Me.Texte24
        Select Case .SelStart
        Case 0
            .InputMask = "A"
            Me.Étiquette26.Caption = ""
        Case 1
            If KeyAscii > 64 Then
                ' recommandé de type international
                .InputMask = "LL\ 00\ 000\ 000\ 0\ LL;0;"
                Me.Étiquette26.Caption = "ex : RR 12 345 678 5 KR"
            Else
                'recommandé français
                .InputMask = "0L\ 000\ 000\ 0000\ 0\;0;"
                Me.Étiquette26.Caption = "ex : 1A 048 115 2535 6"
            End If
           Case Else
        End Select
    End With
End Sub
Qu'est ce qui cloche ?

Merci d'avance pour vos réponses éclairées

Jean-Yves
__________________
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème !!!
si tout est OK, n'oubliez pas de cliquer sur
dumas.blr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/03/2011, 16h19   #2
Membre éprouvé
 
Avatar de dumas.blr
 
Homme Jean-Yves DUMAS
Consultant informatique
Inscription : juin 2010
Messages : 325
Détails du profil
Informations personnelles :
Nom : Homme Jean-Yves DUMAS
Âge : 48
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Consultant informatique
Secteur : Conseil

Informations forums :
Inscription : juin 2010
Messages : 325
Points : 447
Points : 447
Quel est le plus pertinent entre le keyUp/keyDown et le Keypress ?

Quels sont les avantges/inconvénients de chacuns ?
__________________
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème !!!
si tout est OK, n'oubliez pas de cliquer sur
dumas.blr est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h26.


 
 
 
 
Partenaires

Hébergement Web