Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Envoi de paramètres dans une macro

2 réponses
Avatar
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.

2 réponses

Avatar
Pierre Archambault
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" a écrit dans le message de news:

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.




Avatar
Freu
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" a écrit dans le
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" a écrit dans le message de news:

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.