IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

IHM Discussion :

Appel d'une procedure dans un évènement keypress


Sujet :

IHM

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 107
    Points : 54
    Points
    54
    Par défaut Appel d'une procedure dans un évènement keypress
    Bonjour Tous,
    je mets sous bout de code dans l'évènement keypress d'une zone de texte afin de n'autoriser que l saisie des valeurs numeriques.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    123456
    Private Sub zdt1_KeyPress(KeyAscii As Integer)
    If (KeyAscii < 48 Or KeyAscii > 57) And (KeyAscii <> 8) Then
       KeyAscii = 0
    End If
     
    End Sub
    cela marche

    Aussi je mets ce code dans une fonction appélé chiffres afin de pouvoir l'appéler dans les différentes zone de texte de mon formulaires
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Public Sub chiffres()
    If (KeyAscii < 48 Or KeyAscii > 57) And (KeyAscii <> 8) Then
        KeyAscii = 0
    End If
    End Sub
    mais la quand j'appele cette fonction dans une zone de texte il ne fonctionne pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub zdt1_KeyPress(KeyAscii As Integer)
    chiffres
     
    End Sub
    que manque t'il à ma fonction pour qu'elle puisse être correctement appélé dans un évènement keypress.

    Bien Merci

  2. #2
    Membre expert
    Avatar de FreeAccess
    Homme Profil pro
    Un monde ou prendre est plus facile qu'apprendre.
    Inscrit en
    Mars 2006
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Un monde ou prendre est plus facile qu'apprendre.

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 745
    Points : 3 834
    Points
    3 834
    Par défaut
    Bonjour,

    Si tu compile ton code VBA, tu auras tout de suite la réponse à ta question....

    Tu crées une Sub public (..et non une Fonction !!), dans laquelle tu utilise KeyAscii ......qui est censé représenter quoi ...

    En fonction de ton application, tu peux définir cette limitation de façon globale pour le formulaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Form_KeyPress(KeyAscii As Integer)
    If (KeyAscii < 48 Or KeyAscii > 57) And (KeyAscii <> 8) Then
        KeyAscii = 0
    End If
    End Sub
    .....bien sur, tu adapte ce code si tu ne souhaite "impacter" que des champs particuliers de ton formulaire..
    FreeAccess
    "Petit à petit l'araignée tisse sa toile"

  3. #3
    Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 107
    Points : 54
    Points
    54
    Par défaut
    Merci bien pour votre réponse, ce code fonctionne sur toutes les zones de saisies de mon formulaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Form_KeyPress(KeyAscii As Integer)
    If (KeyAscii < 48 Or KeyAscii > 57) And (KeyAscii <> 8) Then
        KeyAscii = 0
    End If
    End Sub
    Malheureusement la compilation du code ne m'a pas permis d'avoir une réponse à ma précédente préoccupation;
    je mets en place une fonction de la sorte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Public Function chiffres()
    If (keyascii < 48 Or keyascii > 57) And (keyascii <> 8) Then
       keyascii = 0
    End If
    Mais l'appel à la fonction dans un évènement keypress d'une zone de texte voulue ne fonctionne.
    Y'a til des arguments à passer à ma fonction chiffres qui manquent?
    Merci de m'aider à réaliser une telle fonction que je pourrai appéler par la suite.

    Merci

  4. #4
    Membre expert
    Avatar de FreeAccess
    Homme Profil pro
    Un monde ou prendre est plus facile qu'apprendre.
    Inscrit en
    Mars 2006
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Un monde ou prendre est plus facile qu'apprendre.

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 745
    Points : 3 834
    Points
    3 834
    Par défaut
    Je pense que tu n'as pas compris le sens de ma réponse..

    Ici, dans ton application tu souhaite ne saisir que des chiffres dans tes zones de texte.
    Donc la solution de gérer cela de façon globale apporte la réponse.....

    Mais l'appel à la fonction dans un évènement keypress d'une zone de texte voulue ne fonctionne.
    Y'a til des arguments à passer à ma fonction chiffres qui manquent?
    Ici, tu essaie de créer une fonction en utilisant KeyAscii....
    Mais dans ta fonction , ce "terme" est uniquement reconnue comme une variable ......c'est d'ailleurs ce que te précise le message d'erreur lors d'une compilation (si bien sur en en-tête tu as l'instruction Option Explicit..)
    FreeAccess
    "Petit à petit l'araignée tisse sa toile"

Discussions similaires

  1. [Oracle] appelle d'une procedure dans oracle
    Par sousan dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 07/12/2011, 14h56
  2. appel d'une procedure situé dans un autre projet
    Par stdebordeau dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 24/10/2007, 16h30
  3. [Pl/Sql] Appel d'une jsp dans une procedure
    Par shaun_the_sheep dans le forum Oracle
    Réponses: 7
    Dernier message: 21/04/2006, 08h13
  4. [PL/SQL] appel d'une procedure dans une procedure
    Par Ilhan_ dans le forum Oracle
    Réponses: 9
    Dernier message: 28/01/2005, 10h30
  5. Réponses: 4
    Dernier message: 28/12/2003, 15h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo