begin process at 2012 02 15 02:56:22
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Divers

 > 

Débutants

 > 

Ma procédure fonctionne mal...(vérification de saisie dans un formulaire)


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Ma procédure fonctionne mal...(vérification de saisie dans un formulaire)

mardi 10 avril 2007 à 15:57:48 | Ma procédure fonctionne mal...(vérification de saisie dans un formulaire)

davidguillon

B'jour!

Je suis méga débutant et même les infos que je trouvent à droite, à gauche sur le net me parraissent trop compliquées...

Je suis en train de faire un formulaire et j'aimerai effectuer des vérifications sur le remplissage de celui-ci. En gros, grand classique je suppose, j'aimerais que le code postal saisi par l'utilisateur ne contienne que des entiers. Pour celà, j'ai trouvé une petite procédure qui me permet de vérifier les caractères saisis à partir de leur code ascii. La procédure est la suivante:

Private Sub txtCodePostal_KeyPress(KeyAscii As Integer)
    If KeyAscii = 8 Or Chr(KeyAscii) = m_DecimalChar Then
        Exit Sub
    End If
   
    If Chr(KeyAscii) < "0" Or Chr(KeyAscii) > "9" Then
        KeyAscii = 0
        Beep
    End If
End Sub



Point positif, ça fonctionne! Mais maintenant, j'aimerai bien pouvoir utiliser ce bout de programme sans avoir à faire un copier coller à chaque fois ... Le système de fonction me parrait donc être le bon, non?

Pour celà, j'avais imaginé faire ma fonction:

    Sub fonctionNumerique
           If KeyAscii = 8 Or Chr(KeyAscii) = m_DecimalChar Then
        Exit Sub
    End If
   
    If Chr(KeyAscii) < "0" Or Chr(KeyAscii) > "9" Then
        KeyAscii = 0
        Beep
    End If

puis de l'appeler en cas de besoin de la manière suivante:

Private Sub txtCodePostal_KeyPress(KeyAscii As Integer)
    call fonctionNumerique
End sub


Mais dans ce cas là, la saisie dans le champs n'est pas bloquée, tous les caractères s'affichent MAIS il y a un Beep à chaque caractère.

Donc j'aimerais savoir si quelqu'un peut me donner un coup de main afin que seuls les entiers apparaissent ;)

Merci beaucoup de votre aide :)

David

mardi 10 avril 2007 à 16:13:19 | Re : Ma procédure fonctionne mal...(vérification de saisie dans un formulaire)

Exploreur

Membre Club
Salut,

Je pense que pour ta fonction, il faut que tu lui passes en paramètre ta zone de text à vérifier

A+
Exploreur

 

mardi 10 avril 2007 à 16:13:33 | Re : Ma procédure fonctionne mal...(vérification de saisie dans un formulaire)

Drikce06

Membre Club
Salut, essaye ça:
Public
 Sub numerique(ByVal KeyAscii As MSForms.ReturnInteger)

    If KeyAscii = 8 Or Chr(KeyAscii) = m_DecimalChar Then
        Exit Sub
    End If
   
    If Chr(KeyAscii) < "0" Or Chr(KeyAscii) > "9" Then
        KeyAscii = 0
        Beep
    End If

   End Sub

Private Sub txtCodePostal_KeyPress(KeyAscii As Integer)
Call numerique(KeyAscii)
End Sub


 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
mardi 10 avril 2007 à 16:18:04 | Re : Ma procédure fonctionne mal...(vérification de saisie dans un formulaire)

Exploreur

Membre Club

Salut,

Voici :

Private Sub Text1_KeyPress(keyascii As Integer)

Call Verife(keyascii)
   

End Sub

Private Function Verife(keyascii As Integer)
 If keyascii = 8 Or Chr(keyascii) = m_DecimalChar Then
        Exit Function
    End If
   
    If Chr(keyascii) < "0" Or Chr(keyascii) > "9" Then
        keyascii = 0
        Beep
    End If
End Function

A+
Exploreur

 

mardi 10 avril 2007 à 16:18:48 | Re : Ma procédure fonctionne mal...(vérification de saisie dans un formulaire)

Exploreur

Membre Club
Post croisé

A+
Exploreur

 

mardi 10 avril 2007 à 16:21:09 | Re : Ma procédure fonctionne mal...(vérification de saisie dans un formulaire)

violent_ken

Membre Club
Réponse acceptée !


Violent Ken

Salut, voilà quelque chose de plus simple :

Option Explicit

Private Sub txtCodePostal_KeyPress(KeyAscii As Integer)
   KeyAscii = FonctionNumerique(KeyAscii)
End Sub

Private Function FonctionNumerique(nb As Integer) As Integer
   If nb < 48 Or nb > 57 Then FonctionNumerique = 0 Else FonctionNumerique = nb
End Function
By Renfield
@+

Hex Editor VB

mardi 10 avril 2007 à 16:21:46 | Re : Ma procédure fonctionne mal...(vérification de saisie dans un formulaire)

jmfmarques

Membre Club

Bonjour,

Une fonction reçois des paramètres et retourne une valeur.
1) tu n'utilises pas là une fonction, mais une sous-routine .
2) tu ne passes aucun paramètre et ne reçois donc rien en retour de ton appel  !
    paramètre à passer à une fonction  ? peut-être la valeur de keyascii, non ?
    valeur retournée par une fonction ? peut être une booléenne True ou False , non ?
    et si true : au retour de l'appel : keyascii = 0 : beep

Genre, donc : if controlons(keyascii) then beep: keyascii = 0

et ta fonction :
private function controlons(KK as integer)
    controlons = False
     If KK = 8 Or Chr(KK) = m_DecimalChar or isnumeric(chr(KK)) Then exit sub
     controlons = true
End function
Devrait suffire !
Fait à main levée et à contrôler, donc....

mardi 10 avril 2007 à 16:22:39 | Re : Ma procédure fonctionne mal...(vérification de saisie dans un formulaire)

davidguillon

Merci sincèrement de vos réponses.

Vos deux propositions ne sont pas exactement les mêmes vu qu'un des deux propose le mot "function". Sauf erreur de ma part, une "function" ne devrait pas retrouner une valeur?

J'ai toutefois une erreur qui arrive lorsque je lance mon appli, avec l'une ou l'autre des solutions:
erreur de compilation:
type défini par l'utilisateur non défini

Alors est-ce que j'ai oublié une déclaration qqpart?

Merci encore de votre aide!

David

PS: j'étudie la proposition de jmfmarques que je viens de recevoir ;)
mardi 10 avril 2007 à 16:24:37 | Re : Ma procédure fonctionne mal...(vérification de saisie dans un formulaire)

jmfmarques

Membre Club
Then exit Function et pas Then Exit Sub, bien sur
mardi 10 avril 2007 à 16:25:14 | Re : Ma procédure fonctionne mal...(vérification de saisie dans un formulaire)

violent_ken

Membre Club


Violent Ken

Pour empêcher la saisie de caractères autres que des chiffres, regarde le bout de code que j'ai posté avant (plus optimisé que de faire des Chr()...)
@+



Hex Editor VB


1 2 3

Cette discussion est classée dans : end, fonctionne, keyascii, procédure, chr


Répondre à ce message

Sujets en rapport avec ce message

besoin d'aide!!!!! [ par Crazyblinkgirl ] Salut!Pourrait on me dire comment faire pour permettre la saisie de plusieurs caracteres text avec une telle procédure? En effet, je ne peux en taper comprehension d'une procédure [ par matheus595959 ] Private Sub Combo1_KeyPress(KeyAscii As Integer) If (KeyAscii = 13) Then     Text2.SetFocus End If End Subbonjour je ne comprend pas cette pro problème de procédure [ par adrienr11vdv ] bonjour à tous,Dans mon projet, il y a plusieurs TextBox où on ne peut saisir que des nombres et la virgule.    Private Sub txt_note_KeyPress(KeyAscii Une procédure Sub pour plusieurs UserForm avec VBA et excel 2000 [ par beaujack ] Bonjour,Programme avec  VBA et Excel 2000Comment faire pour exécuter la même procédure Sub  pour plusieurs UserForm. Je m'explique simplement :Quand j Appel System.IDisposable.Dispose VB Net 2010 [ par Galain ] Bonjour à tous J'ai créé un projet en VB Net 2010 sous Windows Seven. Le projet fonctionne correctement et je me suis mis en tête de solutionner les Filesearch ne fonctionne plus [ par fabconbike ] Bonjour, J'ai un enorme soucis que je doit resoudre au plus vite car je suis tout bloqué.... J'ai un module VBA qui fonctionne parfaitement sous Acce Création/Accés .dll en VB.NET 2005 [ par BlackFlag ] Bonjour à tous ! J'ai un projet en perpétuelle évolution (VB.NET 2005) et sur la dernière mouture je voulais "déplacer" ma routine d'impression dans u Procédure automatique [ par Solainie ] Re-bonjour, J'ai un autre problème, toujours à la suite de cette évolution matérielle et logicielle.Voici un code qui ne fonctionne plus, il Sortir d'une boucle graphique [ par dheroux ] Bonjour,Mon programme boucle dans une procédure graphique Graphics.Drawing qui fonctionne très bien et exactement comme je le souhaitais.Toutefois je


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,541 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales