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

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [RESOLU] : IF (condition1 OU condition2) ET (condition3) alors...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[RESOLU] : IF (condition1 OU condition2) ET (condition3) alors...

n°1325466
elliotdoe
Posté le 14-03-2006 à 21:05:27  profilanswer
 

Bonsoir,
 
j'ai expliqué en gros le problème dans mon titre.
J'ai ce code :  
 

Code :
  1. If Option1.Value = True Or Option2.Value = True And Text4.Text > 0 Then
  2. MsgBox "Vous avez entré deux données 'TAUX'"
  3. End If


 
Je suis débutant en VB6, et pour l'instant, ce que je m'aperçois, c'est que ça ne fonctionne pas...
Ce que je veux faire ? J'ai :
- un bouton radio avec une valeur
- un second bouton radio avec une autre valeur
- une textbox (par défaut à 0) qui permet d'entrer une valeur à la main
 
Avec le code d'au-dessus, quand mon premier bouton radio est coché, ça me balance l'erreur.
Le second fonctionne nickel et met bien l'erreur quand il la faut.
 
Au pire, je peux faire en deux fois : première avec le premier bouton radio, et seconde avec le second bouton, mais bon c'est pas super optimisé... et puis ça m'intéresse de savoir si y a une solution à ce que je demande :)


Message édité par elliotdoe le 17-03-2006 à 14:13:57
mood
Publicité
Posté le 14-03-2006 à 21:05:27  profilanswer
 

n°1325470
elliotdoe
Posté le 14-03-2006 à 21:16:59  profilanswer
 

Second problème, comment faire pour demander si la valeur d'une textbox n'est pas un nombre ?

n°1325477
elliotdoe
Posté le 14-03-2006 à 21:25:22  profilanswer
 

apparemment ça serait kke chose comme
if not isnumeric(val(text1.text)) then...

n°1325479
elliotdoe
Posté le 14-03-2006 à 21:30:19  profilanswer
 

au pire c'est pas non plus bien grave, c'était la dernière erreur qu'il me restait, j'ai mis un on error goto, et un message qui blance "veuillez entrer un nombre"... :)

n°1326175
erwan83
Du Shift DEL tu te méfieras !
Posté le 15-03-2006 à 20:26:52  profilanswer
 

val(valeur) renvoie sa valeur numerique
donc if val(valeur) <> 0 then... tu as une valeur numérique
 
If val(Text4.Text) <> 0 then
      Msgbox "Valeur numérique"
End If
 
etc etc etc


---------------
http://www.ypikay.com
n°1326619
elliotdoe
Posté le 16-03-2006 à 12:57:58  profilanswer
 

oui ok, merci bien.
Sinon, vu que c'était ma dernière erreur, j'ai simplement fait un "on error goto" qui renvoie vers "veuillez entrer une valeur numérique".
C'est un peu plus bricolé mais ça fonctionne :)
Merci en tous cas.

n°1327234
watashi
La démotivation : JAMAIS !
Posté le 17-03-2006 à 11:02:15  profilanswer
 

salut michalator,
je viens de lire ton post sur les textbox et les valeurs numériques.
Pour palier les saisies de lettres j'ai trouvé une petite astuce, dans le textbox1_change, je place ce code (dans excel mais je crois que les fonctions sont les mêmes en vb6):

Code :
  1. If Len(TextBox1.Value) <> 0 Then
  2.     If Not IsNumeric(TextBox1.Text) Then
  3.         TextBox1.Value = Left(TextBox1.Value, Len(TextBox1.Value) - 1)
  4.     End If
  5. End If

Ceci autorise les valeurs vides, autiorise le séparateur décimal (chez moi le virgule) et interdit tout ce qui est frappe de lettre. Tu peux biensûr y ajouter un msgbox pour prévenir.
As tu réussi à résoudre ton problème de condintion? si non, il faut la séparer et faire 2 test.(premier If  l'une des case est cochée, ensuite le 2ème if si tu as une valeur dans ton textbox)
@+


---------------
Je bidouillle c'est sur... Mais j'essaye de faire en sorte que ça marche ;-)
n°1327242
elliotdoe
Posté le 17-03-2006 à 11:09:24  profilanswer
 

Pour le problème des conditions, j'ai effectivement divisé en deux, c'était le plus simple. Mais je pensais qu'il y avait peut-être plus optimisé que ça.
Merci pour l'astuce des valeurs vides et du séparateur décimal, je vais tester :jap:

n°1327255
watashi
La démotivation : JAMAIS !
Posté le 17-03-2006 à 11:29:47  profilanswer
 

si tu as résolu tu peux peut être éditer ton titre de premier post avec un petit résolu :) ca en aidera d'autres


---------------
Je bidouillle c'est sur... Mais j'essaye de faire en sorte que ça marche ;-)
n°1327361
elliotdoe
Posté le 17-03-2006 à 14:14:07  profilanswer
 

c'est fait :)

mood
Publicité
Posté le 17-03-2006 à 14:14:07  profilanswer
 

n°1327402
watashi
La démotivation : JAMAIS !
Posté le 17-03-2006 à 15:35:34  profilanswer
 

;)


---------------
Je bidouillle c'est sur... Mais j'essaye de faire en sorte que ça marche ;-)
n°1327788
kiki29
Posté le 18-03-2006 à 11:49:12  profilanswer
 

Définir des constantes du type  
 
Const SaisieDecimale As String = ".,0123456789" & vbCr & vbBack  
Const SaisieEntiere As String = "0123456789" & vbCr & vbBack  
Const Point as string*1 ="."  
Const Virgule as string*1 =","  
 
Puis utiliser xxx_KeyPress ici pour une saise décimale avec  
substitution . par , et un seul séparateur décimal de permis  
ici en systeme français la virgule  
 
Private Sub xxxx_KeyPress(KeyAscii As Integer)  
    If KeyAscii = Asc(Point) Then  
        If InStr(xxxx, Virgule) = 0 Then  
            KeyAscii = Asc(Virgule)  
        Else  
            KeyAscii = 0  
        End If  
    ElseIf InStr(SaisieDecimale , Chr(KeyAscii)) = 0 Then  
        KeyAscii = 0  
    ElseIf InStr(xxxx, Virgule) > 0 And KeyAscii = Asc(Virgule) Then  
        KeyAscii = 0  
    End If  
     
    If KeyAscii = 13 Then SendKeys "{TAB}": KeyAscii = 0  
End Sub  
 
pour une saisie d'entiers  
 
Private Sub xxxx_KeyPress(KeyAscii As Integer)  
    If InStr(SaisieEntiere , Chr(KeyAscii)) = 0 Then KeyAscii = 0  
 
    If KeyAscii = 13 Then SendKeys "{TAB}": KeyAscii = 0  
End Sub

n°1328267
elliotdoe
Posté le 19-03-2006 à 14:36:26  profilanswer
 

Merci pour ta solution, malheureusement je suis pas assez loin sur VB pour la comprendre. C'est du VB.NET si je me trompe pas ? Perso j'en suis encore à VB6, et je commence tout juste :jap:


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

  [RESOLU] : IF (condition1 OU condition2) ET (condition3) alors...

 

Sujets relatifs
erreur t_variable (résolu)[RESOLU]une animation flash en arrière plan d'une page html
[RESOLU] Comment faire, pour le sceau de peinture??[RESOLU] Intéraction entre deux objets - Meilleure façon de faire
[RESOLU] ouvrir une pop-up avec un header en php..[RESOLU] _GET ou _POST ???
[résolu - qst outil] rétro conception[Résolu] Imprimer l'image d'arriere plan d'une page php
[Resolu] Recherche d'occurences dans une variable String[resolu] RAD 6 et tags JSF 1.2
Plus de sujets relatifs à : [RESOLU] : IF (condition1 OU condition2) ET (condition3) alors...


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