Envoi de paramètres dans une macro

Le
Freu
Bonjour,

je code depuis peu en VBA, et je bloque depuis quelques jours sur une
fonction. J'utilise une fonction qui me permet de détecter quelle touche a
été taper afin empêcher la saisie de certains caractères, or j'ai une 10aine
de champs de saisie sur mon USF et suis donc obligé de retaper le code pour
chaque champ. Existe t'il une solution pour transformer mon code en macro
externe à l'USF afin de m'en resservir a chaque fois que j'en ai besoin, que
ce soit sur le même USF ou avec un autre du même projet ?



Private Sub CODE_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
' Vérification format du champ de saisie
If InStr("ABCDEFGHIJKLMNOPQRSTUVWXYZ-0123456789", Chr(KeyAscii)) = 0
Then
KeyAscii = 0
msg = MsgBox("Caractères autorisés : [AZ] [-] [09]", 64,
"Information")
End If
End Sub

Private Sub CODE2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
' Vérification format du champ de saisie
If InStr("ABCDEFGHIJKLMNOPQRSTUVWXYZ-0123456789", Chr(KeyAscii)) = 0
Then
KeyAscii = 0
msg = MsgBox("Caractères autorisés : [AZ] [-] [09]", 64,
"Information")
End If
End Sub





Merci de vos réponses.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Pierre Archambault
Le #5102811
Salut Freu

'Dans la partie déclaration du USF:
Public Touche As Integer

Ensuite crée une procédure dans un module de code. Par exemple:

Public Sub Validation(Touche As Integer)
'--- Vérification format du champ de saisie
If InStr("ABCDEFGHIJKLMNOPQRSTUVWXYZ-0123456789", Chr(Touche)) = 0 Then
Touche = 0
msg = MsgBox("Caractères autorisés : [AZ] [-] [09]", 64,
"Information")
End If
End Sub

Puis dans chaque TextBox tu appelle cette procédure:

Private Sub txtTitre_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Touche = KeyAscii
Call Validation(Touche)
End Sub

Bonne chance
Pierre
----------------------------------------------------------------------------

"Freu"
Bonjour,

je code depuis peu en VBA, et je bloque depuis quelques jours sur une
fonction. J'utilise une fonction qui me permet de détecter quelle touche a
été taper afin empêcher la saisie de certains caractères, or j'ai une
10aine de champs de saisie sur mon USF et suis donc obligé de retaper le
code pour chaque champ. Existe t'il une solution pour transformer mon code
en macro externe à l'USF afin de m'en resservir a chaque fois que j'en ai
besoin, que ce soit sur le même USF ou avec un autre du même projet ?



Private Sub CODE_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'--- Vérification format du champ de saisie
If InStr("ABCDEFGHIJKLMNOPQRSTUVWXYZ-0123456789", Chr(KeyAscii)) = 0
Then
KeyAscii = 0
msg = MsgBox("Caractères autorisés : [AZ] [-] [09]", 64,
"Information")
End If
End Sub

Private Sub CODE2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'--- Vérification format du champ de saisie
If InStr("ABCDEFGHIJKLMNOPQRSTUVWXYZ-0123456789", Chr(KeyAscii)) = 0
Then
KeyAscii = 0
msg = MsgBox("Caractères autorisés : [AZ] [-] [09]", 64,
"Information")
End If
End Sub

......



Merci de vos réponses.




Freu
Le #5377261
Merci bien, cela marche nickel :)

Je n'ai plus aucun problème pour ca, ce qui est déjà une grande avancée pour
moi. A bientôt pour la suite de mes problèmes ;)




"Pierre Archambault" message de groupe de discussion :
s6iaj.17691$
Salut Freu

'Dans la partie déclaration du USF:
Public Touche As Integer

Ensuite crée une procédure dans un module de code. Par exemple:

Public Sub Validation(Touche As Integer)
'--- Vérification format du champ de saisie
If InStr("ABCDEFGHIJKLMNOPQRSTUVWXYZ-0123456789", Chr(Touche)) = 0 Then
Touche = 0
msg = MsgBox("Caractères autorisés : [AZ] [-] [09]", 64,
"Information")
End If
End Sub

Puis dans chaque TextBox tu appelle cette procédure:

Private Sub txtTitre_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Touche = KeyAscii
Call Validation(Touche)
End Sub

Bonne chance
Pierre
----------------------------------------------------------------------------

"Freu"
Bonjour,

je code depuis peu en VBA, et je bloque depuis quelques jours sur une
fonction. J'utilise une fonction qui me permet de détecter quelle touche
a été taper afin empêcher la saisie de certains caractères, or j'ai une
10aine de champs de saisie sur mon USF et suis donc obligé de retaper le
code pour chaque champ. Existe t'il une solution pour transformer mon
code en macro externe à l'USF afin de m'en resservir a chaque fois que
j'en ai besoin, que ce soit sur le même USF ou avec un autre du même
projet ?



Private Sub CODE_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'--- Vérification format du champ de saisie
If InStr("ABCDEFGHIJKLMNOPQRSTUVWXYZ-0123456789", Chr(KeyAscii)) = 0
Then
KeyAscii = 0
msg = MsgBox("Caractères autorisés : [AZ] [-] [09]", 64,
"Information")
End If
End Sub

Private Sub CODE2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'--- Vérification format du champ de saisie
If InStr("ABCDEFGHIJKLMNOPQRSTUVWXYZ-0123456789", Chr(KeyAscii)) = 0
Then
KeyAscii = 0
msg = MsgBox("Caractères autorisés : [AZ] [-] [09]", 64,
"Information")
End If
End Sub

......



Merci de vos réponses.








Publicité
Poster une réponse
Anonyme