Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1358 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Interdire le texte dans un champs

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Interdire le texte dans un champs

n°1215733
TopFrunix
Posté le 05-10-2005 à 17:07:19  profilanswer
 

Bonjour,
Je débute la sous visual basic 6.
Je voudrais interdire la saisie de lettre et ne laisser que la saisie de chiffres possible dans une case...
Comment peut on réaliser cette fonction ?
Merci d'avance

mood
Publicité
Posté le 05-10-2005 à 17:07:19  profilanswer
 

n°1215756
Vobiscum
Vénérez moi !
Posté le 05-10-2005 à 17:25:07  profilanswer
 

TopFrunix a écrit :

Bonjour,
Je débute la sous visual basic 6.
Je voudrais interdire la saisie de lettre et ne laisser que la saisie de chiffres possible dans une case...
Comment peut on réaliser cette fonction ?
Merci d'avance


 
Utilise la fonction "Validation" que tu trouveras dans le menu "Data" -> "Validation".
Sélectionne le critère "Permettre" dont la valeur sera "Nombre Entier" ou "Decimal"
 

n°1215774
TopFrunix
Posté le 05-10-2005 à 17:32:39  profilanswer
 

je n'ai pas le menu "data"
Pour les menu j'ai "fichier" "edition" "affichage" "projet" "format" "debogage" "execution" "requete" "schema" "outils" "complements" "fenetre" "?"
Je n'ai pas trouvé "valisation" dans ces menus...
Tu peux me re-expliquer ?

n°1215921
Vobiscum
Vénérez moi !
Posté le 05-10-2005 à 19:57:56  profilanswer
 

TopFrunix a écrit :

je n'ai pas le menu "data"
Pour les menu j'ai "fichier" "edition" "affichage" "projet" "format" "debogage" "execution" "requete" "schema" "outils" "complements" "fenetre" "?"
Je n'ai pas trouvé "valisation" dans ces menus...
Tu peux me re-expliquer ?


 
Dans XL pas dans visual basic .... puis si tu veux tu l'enregistre comme nouvelle macro et tu l'utilise après  

n°1215941
TopFrunix
Posté le 05-10-2005 à 20:30:53  profilanswer
 

Comment tu fais exactement ?
J'ai trouvé la boite de dialogue, j'ai mis "decimal" avec un minimum à "0".
Le code fonctionne bien dans la case XL, apres tu le met comment dans VB ?
Si tu peux detailler car c'est la premiere fois que je fais cette anip'.

n°1215953
Vobiscum
Vénérez moi !
Posté le 05-10-2005 à 21:01:57  profilanswer
 

TopFrunix a écrit :

Comment tu fais exactement ?
J'ai trouvé la boite de dialogue, j'ai mis "decimal" avec un minimum à "0".
Le code fonctionne bien dans la case XL, apres tu le met comment dans VB ?
Si tu peux detailler car c'est la premiere fois que je fais cette anip'.


 
Tu fais menu "Outils" -> "Macro" -> "Nouvelle Macro ...", puis "OK"
Tu fais alors la manipulation que je t'ai donnée précédemment puis tu clicque sur le bouton arrêt (le carré sur la barre d'outils)
tu vas and VB et tu regardes dans le module "module1", tu y veras la macro enregistrée.

n°1215960
TopFrunix
Posté le 05-10-2005 à 21:12:31  profilanswer
 

En fait voila mon programme.
 
 
Option Explicit
Private prix As Single
Private CoefForfait As Single
Private CoefReduc As Single
Private TVA As Single
 
 
Private Sub CheckForfait_Click()
If CheckForfait.Value = 0 Then FrameForfait.Enabled = False
If CheckForfait.Value = 1 Then FrameForfait.Enabled = True
calcul
 
End Sub
 
Private Sub CheckReduction_Click()
If CheckReduction.Value = 0 Then FrameReduction.Enabled = False
If CheckReduction.Value = 1 Then FrameReduction.Enabled = True
calcul
 
End Sub
 
 
Private Sub Form_Load()
prix = 1.2
TVA = 0.804
 calcul
TextHt.Text = Val(TxtTtc.Text) * TVA
End Sub
 
Private Sub calcul()
 
 'prix normal
 If CheckForfait.Value = 0 And CheckReduction.Value = 0 Then TxtTtc.Text = Val(TextTicket.Text) * prix
 'prix we
 If CheckForfait.Value = 1 And CheckReduction.Value = 0 And TxtWe.Value = True Then TxtTtc.Text = Val(TextTicket.Text) * prix * 0.3 * 2
 
 'prix decouverte
 If CheckForfait.Value = 1 And CheckReduction.Value = 0 And TxtDecouverte.Value = True Then TxtTtc.Text = Val(TextTicket.Text) * prix * 0.5 * 7
 
 'reduction 30%
 If CheckForfait.Value = 0 And CheckReduction.Value = 1 And Txt30.Value = True Then TxtTtc.Text = Val(TextTicket.Text) * prix * 0.7
 
 'reduction 50%
 If CheckForfait.Value = 0 And CheckReduction.Value = 1 And Txt50.Value = True Then TxtTtc.Text = Val(TextTicket.Text) * prix * 0.5
 
 'reduction 75%
 If CheckForfait.Value = 0 And CheckReduction.Value = 1 And Txt75.Value = True Then TxtTtc.Text = Val(TextTicket.Text) * prix * 0.25
 
 'Reduction 30 et forfait WE
 If CheckForfait.Value = 1 And TxtWe.Value = True And CheckReduction.Value = 1 And Txt30.Value = True Then TxtTtc.Text = Val(TextTicket.Text) * prix * 0.7 * 0.3 * 2
 
 'Reduction 50 et forfait WE
 If CheckForfait.Value = 1 And TxtWe.Value = True And CheckReduction.Value = 1 And Txt50.Value = True Then TxtTtc.Text = Val(TextTicket.Text) * prix * 0.5 * 0.3 * 2
 
 'Reduction 70 et forfait WE
 If CheckForfait.Value = 1 And TxtWe.Value = True And CheckReduction.Value = 1 And Txt75.Value = True Then TxtTtc.Text = Val(TextTicket.Text) * prix * 0.25 * 0.3 * 2
 
 'Reduction 30 et forfait decouverte
 If CheckForfait.Value = 1 And TxtDecouverte.Value = True And CheckReduction.Value = 1 And Txt30.Value = True Then TxtTtc.Text = Val(TextTicket.Text) * prix * 0.7 * 0.5 * 7
 
 'Reduction 50 et forfait decouverte
 If CheckForfait.Value = 1 And TxtDecouverte.Value = True And CheckReduction.Value = 1 And Txt50.Value = True Then TxtTtc.Text = Val(TextTicket.Text) * prix * 0.5 * 0.5 * 7
 
 'Reduction 70 et forfait decouverte
 If CheckForfait.Value = 1 And TxtDecouverte.Value = True And CheckReduction.Value = 1 And Txt75.Value = True Then TxtTtc.Text = Val(TextTicket.Text) * prix * 0.25 * 0.5 * 7
 
End Sub
 
 
Private Sub TextTicket_Change()
 
calcul
TextHt.Text = Val(TxtTtc.Text) * TVA
Macrovb
End Sub
 
Private Sub Txt30_Click()
calcul
 
End Sub
 
 
Private Sub Txt50_Click()
calcul
 
End Sub
 
Private Sub Txt75_Click()
calcul
 
End Sub
 
Private Sub TxtDecouverte_Click()
calcul
 
End Sub
 
Private Sub TxtTtc_Change()
TextHt.Text = Val(TxtTtc.Text) * TVA
End Sub
 
Private Sub TxtWe_Click()
calcul
TextHt.Text = Val(TxtTtc.Text) * TVA
End Sub
 
Sub Macrovb()
'
' Macrovb Macro
' Macro enregistrée le 05/10/2005
'
 
'
    With Selection.Validation
        .Delete
        .Add Type:=xlValidateDecimal, AlertStyle:=xlValidAlertStop, Operator _
        :=xlGreater, Formula1:="0"
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = "Donnée non valide"
        .InputMessage = ""
        .ErrorMessage = "Veuillez entrer des chiffres !"
        .ShowInput = True
        .ShowError = True
    End With
End Sub

 
En bleu il y a le code issu de XL, j'aimerai qu'il s'applique à une case qui se nomme "TextTicket.Text".
Si tu sais faire la correction je suis preneur. Pour le moment j'ai juste fait un copié/collé du code que je voulais (macro XL) dans monprogramme.


Message édité par TopFrunix le 05-10-2005 à 21:13:45
n°1216058
gatsusat
Posté le 05-10-2005 à 22:32:10  profilanswer
 

With TextTicket.Text  
       

n°1216085
TopFrunix
Posté le 05-10-2005 à 23:18:01  profilanswer
 

J'ai un message d'erreur lors de l'execution du programme...
"erreur de compilation :
L'objet with doit etre de type defini par l'utilisateur, Object ou Variant"
Qu'est-ce que je dois changer ?
 
 
 
J'ai juste changer le code par :
Sub Macrovb()  
'  
' Macrovb Macro  
' Macro enregistrée le 05/10/2005  
'  
 
'  
    With TextTicket.Text  
        .Delete  
        .Add Type:=xlValidateDecimal, AlertStyle:=xlValidAlertStop, Operator _  
        :=xlGreater, Formula1:="0"  
        .IgnoreBlank = True  
        .InCellDropdown = True  
        .InputTitle = ""  
        .ErrorTitle = "Donnée non valide"  
        .InputMessage = ""  
        .ErrorMessage = "Veuillez entrer des chiffres !"  
        .ShowInput = True  
        .ShowError = True  
    End With  
End Sub

Message cité 1 fois
Message édité par TopFrunix le 05-10-2005 à 23:19:18
n°1216146
Vobiscum
Vénérez moi !
Posté le 06-10-2005 à 09:16:40  profilanswer
 

TopFrunix a écrit :

J'ai un message d'erreur lors de l'execution du programme...
"erreur de compilation :
L'objet with doit etre de type defini par l'utilisateur, Object ou Variant"
Qu'est-ce que je dois changer ?
 
 
 
J'ai juste changer le code par :
Sub Macrovb()  
'  
' Macrovb Macro  
' Macro enregistrée le 05/10/2005  
'  
 
'  
    With TextTicket.Text  
        .Delete  
        .Add Type:=xlValidateDecimal, AlertStyle:=xlValidAlertStop, Operator _  
        :=xlGreater, Formula1:="0"  
        .IgnoreBlank = True  
        .InCellDropdown = True  
        .InputTitle = ""  
        .ErrorTitle = "Donnée non valide"  
        .InputMessage = ""  
        .ErrorMessage = "Veuillez entrer des chiffres !"  
        .ShowInput = True  
        .ShowError = True  
    End With  
End Sub


 
Remplace, dans le code suivant, le "<feuille>" par le nom de la feuille dans laquelle se trouve ton textticket.text ...
 
with <feuille>.TextTicket.Text
 
(bien que je me demande si ca s'applique à une "forme" ... car tu parlais de case au départ !!!)


Message édité par Vobiscum le 06-10-2005 à 09:18:24
mood
Publicité
Posté le 06-10-2005 à 09:16:40  profilanswer
 

n°1216159
watashi
La démotivation : JAMAIS !
Posté le 06-10-2005 à 09:40:26  profilanswer
 

Salut,
 
il manque le validation et il faut placer ce code dans le worksheet_selectionchange de la feuille qui contient la cellule à valider, comme ça la validation se fait en cours de saisie et nom au lancement de la macro.
 

Code :
  1. Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  2.     With Range("TextTicket.Text" ).Validation
  3.         .Delete
  4.         .Add Type:=xlValidateDecimal, AlertStyle:=xlValidAlertStop, Operator _
  5.         :=xlGreaterEqual, Formula1:="0"
  6.         .IgnoreBlank = True
  7.         .InCellDropdown = True
  8.         .InputTitle = ""
  9.         .ErrorTitle = "Donnée non valide !"
  10.         .InputMessage = ""
  11.         .ErrorMessage = "Veuillez saisir des chiffres."
  12.         .ShowInput = True
  13.         .ShowError = True
  14.     End With
  15. End Sub


pour peu effectivement qu'il s'agisse d'une cellue et non d'un camp à remplir dans un formulaire.
bon courage


---------------
Je bidouillle c'est sur... Mais j'essaye de faire en sorte que ça marche ;-)
n°1216675
mareek
Et de 3 \o/
Posté le 06-10-2005 à 15:10:17  profilanswer
 

L'auteur du topic travaille sous VB6 et pas sous VBA excel, arretez de lui donner des techniques qu'il ne peut pas utiliser.


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
n°1216685
TopFrunix
Posté le 06-10-2005 à 15:19:57  profilanswer
 

C'est pas possible ?
On fait comment alors ?

n°1216713
watashi
La démotivation : JAMAIS !
Posté le 06-10-2005 à 15:32:42  profilanswer
 

Désolée topfrunix, comme l'a fait remarqué mareek, mon post de réponse ne colle pas avec ce que tu annonçais dans ton premier post. Il ne peut coller que dans le VB liè à excel.
 
J'espère que quelqu'un d'autre pourra t'aider.


---------------
Je bidouillle c'est sur... Mais j'essaye de faire en sorte que ça marche ;-)
n°1216787
mareek
Et de 3 \o/
Posté le 06-10-2005 à 16:18:36  profilanswer
 

TopFrunix a écrit :

C'est pas possible ?
On fait comment alors ?


Je connais pas de solution simple. la seule que je vois c'est de vérifier ce que l'utilisateur tape en temps réel (via l'évennement txtbox_change)


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
n°1216904
TopFrunix
Posté le 06-10-2005 à 17:58:57  profilanswer
 

Je connais pas les fonctions de VB6, jen fait depuis deux cours...
Tu peux expliquer comment cette fonction marche et bloquer toutes les lettres ?

n°1216911
mareek
Et de 3 \o/
Posté le 06-10-2005 à 18:04:11  profilanswer
 

L'evenement change se produit lorsque le contenu de la textbox change. Pour bloquer les lettres, il faut vérifier le contenu de la textbox à chaque fois qu'il change et virer les lettres du texte.

n°1217109
Profil sup​primé
Posté le 06-10-2005 à 22:12:51  answer
 

sur l'evenement keypress de ton TextBox
définit l'intervalle de ton KeyAscii  
 
Pour Saisir que des nombres:  


Private Sub TextBox_KeyPress(KeyAscii as integer)
    If Not IsNumeric(Chr(KeyAscii)) And KeyAscii <> 8 And Chr(KeyAscii) <> "." then
        KeyAscii = 0
    End if
End Sub


 
Pour Saisir que du texte :


Private Sub TextBox_KeyPress(KeyAscii as integer)
    If (KeyAscii < 65 or (KeyAscii > 90 and KeyAscii < 97) or KeyAscii > 122) and KeyAscii <> 8 then
        KeyAscii = 0
    End if
End Sub


 
Astuces :


- KeyAscii <> 8         pour autoriser la suppression
- chr(KeyAscii)) <> "." pour autoriser les nombres décimaux avec le symbole "." comme séparateur


Message édité par Profil supprimé le 06-10-2005 à 23:15:41
n°1217155
TopFrunix
Posté le 06-10-2005 à 23:21:54  profilanswer
 

meri je vais essayer.
Je vais chercher sur le net les correspondance du clavier car je ne sais pas à quoi correspond "90" "97" 122"... De cette maniere je saurrais même comment retraintre certain chiffres ou autre.
Encore merci

n°1217218
Profil sup​primé
Posté le 07-10-2005 à 07:39:34  answer
 

TopFrunix a écrit :

meri je vais essayer.
Je vais chercher sur le net les correspondance du clavier car je ne sais pas à quoi correspond "90" "97" 122"... De cette maniere je saurrais même comment retraintre certain chiffres ou autre.
Encore merci


regarde ici  ;)

n°1217790
TopFrunix
Posté le 07-10-2005 à 15:41:56  profilanswer
 

merci c'est bien pratique ;)

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Interdire le texte dans un champs

 

Sujets relatifs
copier le contenu d'un fichier texte dans un fichier htmlplacement du texte dans un bouton
Excel VBA - Importer depuis un fichier texteComment modifier le style du texte dans un envoit e-mail (via smtp)
formulaire php : limitations des champsorder by sur deux champs date?
Deux liens HTML sur un même texteavec VBS ecrire dans un fichier exel dans des champs a1 a2 ...
Actualiser champs dynamique..comment interdire une scrollbar avec dreamweaver??
Plus de sujets relatifs à : Interdire le texte dans un champs


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR