begin process at 2012 02 12 23:40:04
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Texte

 > SAISIES CONTROLÉES DIVERSES (ALPHABÉTIQUES ET NUMÉRIQUES)

SAISIES CONTROLÉES DIVERSES (ALPHABÉTIQUES ET NUMÉRIQUES)


 Information sur la source

Note :
10 / 10 - par 1 personne
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Texte Classé sous :saisie, texte, numerique Niveau :Débutant Date de création :28/04/2007 Vu / téléchargé :7 576 / 951

Auteur : jmfmarques

Ecrire un message privé
Commentaire sur cette source (13)
Ajouter un commentaire et/ou une note

 Description

Voilà donc, comme promis,

Après plusieurs (trop nombreuses et trop fréquentes à mon sens) discussions ouvertes sur ce forum  en matière de saisies contrôlées,j'ai voulu  eaufiner cette petite démonstration.

J'ai également gardé à l'esprit mes voeux habituels d'indépendance à l'égard des ocx qui existent pour parvenir aux mêmes résultats. Ce voeu d'indépendance est bien évidemment accompagné de mon souci permanent de ne pas me trouver piégé par de nouvelles versions de Windows (avec, à la clef quelquefois, la non reconnaissance de certains composants...)

cette petite démonstration regroupe des saisies contrôlées de textes alphabétiques et alphanumériques et des saisies
contrôlées de nombres, décimaux ou non.

En ce qui concerne les saisies de texte, je n'ai donné que quelques exemples mais chacun verra vite comment ajouter des formats personnalisés.



En ce qui concerne les saisies de nombres, sont paramétrables les éléments suivants :
- séparateur de décimales, ou même : choix total laissé à l'utilisateur sans qu'il ait à le  manifester expressément (l'outil comprend seul sa volonté)
  Quel que soit ce choix (virgule ou point), l'enregistrement éventuel du chiffre se fait par utilisation du signe point, ce qui évite ensuite les surprises traditionnelles, par l'utilis ation de l'une des fonctions de l'outil
- nombre de décimales


L'outil n'utilise que l'événement Change, ce qui fait que, contrairement à l'utilisation de l'événement Keypress qui ne protège pas totalement, tout est sans cesse contrôlé, y compris les éventuels copiés/collés qui échappent à l'événement Keypress

voilà donc...



 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip SAISIE ASSISTÉE DE DATES
Source avec Zip POSITIONNER UNE MSGBOX
Source avec Zip MODIFICATION D'UNE COULEUR D'UNE IMAGE
Source avec Zip CONTRÔLES PERSONNALISÉS - DIVERS DÉGRADÉS PARAMÉTRABLES - TO...
Source avec Zip TEXTURES D'IMAGES

 Sources de la même categorie

Source avec Zip Source avec une capture MASQUE DE SAISIE NUMÉRIQUE par acive
Source avec Zip Source .NET (Dotnet) COMPTEUR DE NOMBRE DE MOTS DANS UN TEXTE par alpha5
Source avec Zip Source avec une capture HM - BLOCNOTE par hassenmajor
Source .NET (Dotnet) [VB.NET] CLASS DE COLORATION SYNTAXIQUE "ON THE FLY" par huzima
Source avec Zip Source avec une capture PERSONNALISEZ VOS BOÎTES DE MESSAGE (X)HTML par medjahedScript

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture VBA MASQUE DE SAISIE NUMÉRIQUE par acive
Source avec Zip Source avec une capture MASQUE DE SAISIE NUMÉRIQUE par acive
CONVERTION DE CHAMP TEXTE EN DATE par pasco05
Source avec Zip Source avec une capture TEXTBOX EVOLUTION par bouv
Source .NET (Dotnet) LIMITER LA SAISIE À CERTAINS CARACTÈRES/TOUCHES DANS UN TEXT... par hvb

Commentaires et avis

Commentaire de Exploreur le 28/04/2007 19:12:15

Salut Jmfmarques,

Bon ce soir ou demain je regarde ta source et reviens plus tard....

Note : Maintenant on pourra mettre ce lien à des questions du forum portant sur ce sujet...lol..

A+
Exploreur

Commentaire de chaibat05 le 28/04/2007 19:18:23

Salut Marques,

Ah l' événement Change ()  et le chien qui se mord la queue !
Personne ne me croit ...

Prenons
Private Sub Text1_Change()
  Static stat1 As String
  controle_texte "#", ActiveControl, stat1    ' > faisant un point d' arrêt à ce niveau
End Sub

Avec un chiffre pas de problème
Mais si on tappe "a"
> Execution de la fonction control
   tout se passe bien jusqu' à  
   ctrl.Text = mret    =>  Déclenchement de Text1_Change()
                                     et rééxécution de la fonction controle...

End Sub

Ma parade :
Public SelfChange As Boolean

Private Sub Text1_Change()
  If SelfChange=True Then Exit Sub
  SelfChange=True
  Static stat1 As String
  controle_texte "#", ActiveControl, stat1    ' > faisant un point d' arrêt à ce niveau
  SelfChange=False
End Sub

A part ça je n' ai pas encore fait de tests approffondis.Mais à premier vue ça semble correct.
En fait j' ai tellement horreur de l' événement Change que je n' ai pas pu m' empêcher
de le tester en premier.


A+

Commentaire de DARKSIDIOUS le 28/04/2007 19:20:02 administrateur CS

Hum, pourquoi faire le contrôle uniquement dans le change ? Dans le KeyPress, c'est plus esthétique : on ne voit pas les caractères si tu les annule lors de la saisie de l'utilisateur.

DarK Sidious

Commentaire de jmfmarques le 28/04/2007 19:45:14

Oui, Nicolas, l'événement keypress n'est pas mal et est plus facile à programmer, mais....

Il te fayt alors également gérer (dans le click), l'impossibilité de copieés/collés !

De surcroit : OK, on gère le presse-papier (on le vide au click) mais en faisant ainsi tu ne peux plus, du coup, faire un copier-coller cohérent et voulu !

Mais pire encore : OK pour vider le presse-papier au click, mais voilà :
1) je frappe 1234,12
2) je clique et sélectionne
3) je relache la souris et y vais : CTRL-C ==>> 4 ou 5 fois CTRL-V ==>> vois le résultat

Ah zut, alors ! il va falloir gérer celà aussi ...
Allons bon ! Mais c'est faisable en effaçant aussi le clipboard et (également) en désélectionnant par sellenght au MouseUp !

Alors :
- 1e keypress pour gérer la frappe
- le click pour vider le clipboard de ce qui aurait été copié d'ailleurs
- le mouseup pour déselectionner de qui aurait été sélectionné dans la textbox même et vider aussi le clipboard...

et tu perds de toutes façon :
1) la possibilité de copier-coller souhaités depuis aolleurs
2) la possibilité de copier ta propre textbox pour coller ailleurs ...

Voilà pourquoi j'ai choisi l'événement change (un seul événement pour tout)

J'ai presque fini en ce qui concerne la saisie contrôlée des dates et heures.... Si j'utilisais pour ces saisies l'événement keypress, ce serait pire encore, sauf à inhiber carrément la souris !!!


Commentaire de diablamanshadow le 28/04/2007 21:08:09

et si a la place de tenter de tout gerer (si on passe par keypress) tu passe pas comme a dit darksidous par le keypress puis apres pour ton copier coller bah tu verifie avec le change le contenu du clipboard ...

si le clipboard est different de ce qui peut etre entrer bah tu le vide pas tu l'annul ...

perso j'ai pas looker le code car ses assez simple a faire mais bon c'est vrai que ses souvent demander sur le forum ou meme moi par mes contact msn ^^

Commentaire de jmfmarques le 28/04/2007 21:12:10

Salut Diablamanshadow...

Bien ! Ecris donc celà, pour voir... et on en discute ensuite si tu y parviens avec un seul événement... (si tu y parviens, bien sur)...

Commentaire de diablamanshadow le 28/04/2007 22:53:53

ne t'inquiete pas je l'ai deja fait, pas un seul evennement certe mais comme dit dans mon com ci dessus je parle de plusieurs evennement dont le keypress :-)

sinon je ne depose plus de sources sur vbf au vu que a chaque fois que j'en pose on m'insulte etc puis comme je repond pas le mec prend rage et ses moi qui fini ban donc depuis je ne fais plus que lire, repondre de temp en temp et telecharger ^^

Commentaire de DARKSIDIOUS le 29/04/2007 07:07:28 administrateur CS

désolé jacques de faire du hors sujet :
Diablamanshadow : si lorsque tu poste une source, y'a des membres qui t'insulte, parle-en à un admin, on fera le nécessaire pour calmer les choses !

>> jacques : je n'ai jamais dit de tout gérer dans le keypress, j'ai suggéré de gérer dans le keypress ET dans le change : dans le keypress pour limiter la saisie des utilisateurs à la volée (c'est très simple à faire), ET dans le change (ou le validate sinon) pour les cas particuliers (copier-coller par exemple).

Commentaire de jmfmarques le 29/04/2007 09:06:50

Bonjour Nicolas,

Bien sur que c'est simple avec le Keypress (nous l'avons tous fait de diverses manières)..
Le seul problème est toutefois celui que je t'ai signalé : pour se protéger des copier-coller indus (en perdant quand-même la possibilité d'utiliser - dans les 2 sens - le copier-coller que l'on voudrait faire)...
Il te faudra donc utiliser plusieurs événements, dont le Change (alors pourquoi ne pas l'utiliser d'emblée ? juste pour éviter l'apparition fugace d'un caractère avant son refus ?)
Et dans le Change, alors : il va bien te falloir faire une analyse de cohérence, si tu veux conserver le copier-coller ... et elle sera forcément différente de ce qu'elle est au keypress qui, lui, ne traite qu'u moment de la frappe.
L'avantage du seul événement Change est que le développeur (ayant tout mis dans un module) n'a pas à se soucier du reste et que sa syntaxe est alors simple et en 1 seul endroit.
Son inconvénient : apparition fugace lors d'une saisie erronée (ce qui devrait de surcroît par essence être rare) est vraiment insignifiant au regard du reste.

En résumé : si j'ai écrit celà, c'est précisément parce que j'ai bien vu (et ai payé pour) à quoi pouvaient conduire les autres méthodes : soit un "éclatement" des instructions liées au contrôle de saisie en plusieurs endroits du code, soit une privation, soit enfin un risque courru, selon les cas de figure.
Si, enfin, tu dois "paramétrer" la saisie, le code de l'événement Keypress se transforme alors en une véritable usine à gaz, à moins que tu n'en définisse un chaque fois, en fonction du contrôle à faire.

Commentaire de jmfmarques le 29/04/2007 10:56:59

Et j'ai oublié !...

Si la machine cliente est paramétrée à la française, regarde :

MsgBox IIf(IsNumeric("123.70"), "numérique", "pas numérique")

Pour faire ton test de cohérence pour les copier-coller, il te faudra donc forcer la saisie avec la virgule comme séparateur décimal, ou alors ... écrire également dans ton Change ce que j'ai écrit dans le seul événement change !
Tu te rends mieux compte, maintenant ?

Commentaire de DJMCG le 29/04/2007 15:08:07

Bonjour à tous,
Merci pour cette conversation.
Je suis aussi interressé par la saisie controlée, mais en vb 2005.
Si vous avez des pistes pour trouver sur ce site, merci pour votre aide. Je vais tenter de m'inspirer de cette source. Qui sait j'y arriverais peut-être ? Encore Merci.
JM

Commentaire de freeman151248 le 06/11/2007 11:12:56 10/10

Bonjour,

Ce sujet est récurant et semble sans fin ayant posté moi-même une demande d'aide! donc finalement pas si trivial.

Je trouve cette source trés intéressante qui répond trés bien à mon souci donc merci!! donc un gros 10 pour moi!

A+

Commentaire de mannou1983 le 10/04/2008 14:44:46

MERCI ;)

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

comment avoir la saisie semi-automatique dans une zone de texte [ par annelise ] Bonjour,Comment peut on faire pour avoir la saisie semi automatique dans une zone de texte, je m explique. J ai une table client et quand j'entre une pb saisie de texte dans textbox [ par footyak ] bonjour, j'ai un pb: lorsque je saisis la valeur numérique d'un résultat et qu'il ya une virgule , le prog ne prend que la première valeur avant la vi Obliger la saisie d'un texte en majuscule [ par guillaume ] Je cherche à faire en sorte que lorsqu'on tape dans un textbox, le texte se mette automatiquement en majuscule et s'u'on ne puisse pas le changer.Quel saisie de texte dans un MSFlexGrid [ par davyboy ] Bonjour , J'aimerais pouvoir taper du texte dans le champ sélectionné d'un MSFlexGrid. Est ce possible, si oui, comment ?Pour le moment j'affiche un t FENETRE DE SAISIE DE TEXTE [ par reyman ] En VB.NETPeut on me dire s'il existe une commande qui permet de faire apparaitre une petite fenetre qui comprend un champ de texte et 2 boutons : OK e Saisie de texte [ par Michele ] Bonsoir.Comment peut on faire pour controlerla saisie dans un TextBoxpour que celui-ci corresponde uniquementà 7 chiffres et une lettre sans utiliseru Conversion texte en numerique dans requete SQL [ par dseb59 ] Bonjour,J'ai une table Access avec un champ 'Ancienneté' de type texte. Ce champ contient des chiffres, des '-' ou des chaines de caracteres.Je veux t Saisie d'une zone de texte devient la valeur par défaut de la prochaine ouverture d'un formulaire sur MS ACCESS [ par amaelroche ] J'ai développé une base de données sous ACCESS pour gérer les activités de mon travail (Responsable Qualité). Je cherche à récupérer l'information sai Curseur de saisie [ par mono_neurone ] J'ai un petit probleme... toujours a propos de mes text box etc. En fait j ai un ti programme tou bete qui, lorsque je clique sur un bouton, envoi l Saisie de texte [ par vbmo ] Bonjour,Savez-vous comment remplacer les "retour chariot" d'une RichTextBox (par exemple) par des "<br>" dans une autre RichTextBox ???merci


Nos sponsors


Sondage...

Comparez les prix

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 : 0,983 sec (4)

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