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

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [Excel-VBA]Fonction IF je pète un cable

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Excel-VBA]Fonction IF je pète un cable

n°1549782
l3lade
Posté le 26-04-2007 à 14:27:00  profilanswer
 

Bonjour a tous, je vous explique j'ai un petit probleme avec la programmation dans excel, j'ai un userform avec 3 text box.  
Text box 1 = prix mini
Text box 2 = prix maxi
Text box 6 = prix calculé
 
En gros je veux comparer à chaque fois le prix calculé aux prix mini et maxi :  
Si le prix calculé est inférieur --> commentaire
Si le prix calculé est supérieur --> commentaire
Si le prix calculé est entre les 2 --> commentaire
 
donc tout logiquement j'ai fait ce code là :
If TextBox1.Value < TextBox6.Value Then
If TextBox6.Value < TextBox2.Value Then
Label16.Caption = "milieu"
Else: GoTo dessus
End If
End If
 
dessus:
If (TextBox6.Value > TextBox2.Value) Then
Label16.Caption = "dessus"
Else: GoTo dessous
End If
 
dessous:
If TextBox6.Value < TextBox1.Value Then
Label16.Caption = "dessous"
End If
 
Le probleme c'est que rien ne fonctionne, quand la valeur est entre les deux, le commentaire est "au dessus", quand il est au dessus, le commentaire me dit "au dessous" et jamais je n'ai le commentaire "milieu". Quelqu'un peut-il m'expliquer ou je me suis trompé ?

mood
Publicité
Posté le 26-04-2007 à 14:27:00  profilanswer
 

n°1549824
seniorpapo​u
Posté le 26-04-2007 à 14:39:02  profilanswer
 

Bonjour,
En conservant ta façon d'écrire, il est nécessaire, avant dessus: et dessous: de "sauter ou sortir" en effet après les deux premiers end if on enchaine sur l'étiquette dessus: etc...
Cordialement

n°1549925
l3lade
Posté le 26-04-2007 à 14:46:20  profilanswer
 

seniorpapou a écrit :

Bonjour,
En conservant ta façon d'écrire, il est nécessaire, avant dessus: et dessous: de "sauter ou sortir" en effet après les deux premiers end if on enchaine sur l'étiquette dessus: etc...
Cordialement


 
HELLO merci pour ta reponse, de ce que j'ai compris, j'ai écrit ca
 
milieu:
If TextBox6.Value > TextBox1.Value Then
If TextBox6.Value < TextBox2.Value Then
Label16.Caption = "milieu"
GoTo suite
Else: GoTo dessus
End If
End If
 
dessus:
If (TextBox6.Value > TextBox2.Value) Then
Label16.Caption = "dessus"
GoTo suite
Else: GoTo dessous
End If
 
dessous:
If TextBox6.Value < TextBox1.Value Then
Label16.Caption = "dessous"
Else: GoTo suite
End If
 
suite:
end sub
mais ca ne fonctionne toujours pas lorsque la valeur est au milieu

n°1550005
aprilthe5i​th
Posté le 26-04-2007 à 15:06:53  profilanswer
 

Je ne sais pas pourquoi ton code ne fonctionne pas...
   
En revanche tu peu xsimplifier ton code ainsi :
 
If TextBox1.Value < TextBox6.Value Then
  If TextBox6.Value < TextBox2.Value Then
    Label16.Caption = "milieu"
  Else
    Label16.Caption = "dessus"
  End If
else
  Label16.Caption = "dessous"
End If  
 
Peut-être que ton erreur va disparaitre

n°1550006
seniorpapo​u
Posté le 26-04-2007 à 15:06:57  profilanswer
 

Re,
tes textbox contiennent du texte il faut les convertir si tes mini maxi etc.. sont en numérique
Cordialement

n°1550056
seniorpapo​u
Posté le 26-04-2007 à 15:25:41  profilanswer
 

Tu peux mettre par exemple:
Dim min As Integer
Dim max As Integer
Dim calc As Integer
min = CInt(TextBox1.Value)
max = CInt(TextBox2.Value)
calc = CInt(TextBox6.Value)
    If calc < min Then
        Label16.Caption = "dessous"
    Else
        If calc > max Then
            Label16.Caption = "dessus"
        Else
            Label16.Caption = "milieu"
        End If
    End If
 
 
si = min     ou = max sont considérés comme "milieu"
 
pour les conversions tu tapes conversion dans le help VB et regardes fonctions de conversion
 
Cordialement

n°1550078
l3lade
Posté le 26-04-2007 à 15:39:30  profilanswer
 

seniorpapou a écrit :

Re,
tes textbox contiennent du texte il faut les convertir si tes mini maxi etc.. sont en numérique
Cordialement


 
comment on fait ca ? dans les propriétés des textbox on peut pas choisir le format...

n°1550098
l3lade
Posté le 26-04-2007 à 15:52:00  profilanswer
 

seniorpapou a écrit :

Tu peux mettre par exemple:
Dim min As Integer
Dim max As Integer
Dim calc As Integer
min = CInt(TextBox1.Value)
max = CInt(TextBox2.Value)
calc = CInt(TextBox6.Value)
    If calc < min Then
        Label16.Caption = "dessous"
    Else
        If calc > max Then
            Label16.Caption = "dessus"
        Else
            Label16.Caption = "milieu"
        End If
    End If
 
 
si = min     ou = max sont considérés comme "milieu"
 
pour les conversions tu tapes conversion dans le help VB et regardes fonctions de conversion
 
Cordialement


 
yes, ca fonctionne, merci beaucoup pour ton aide. C'est pourtant quelque chose d'assez simple mais depuis hier j'essaie de faire afficher milieu quand il faut et je n'ai jamais réussi, merci encore
 

n°1550243
galopin01
Posté le 26-04-2007 à 19:47:08  profilanswer
 

http://perso.orange.fr/galopin01/images/slip.jpg

n°1550246
galopin01
Posté le 26-04-2007 à 19:51:38  profilanswer
 

Sorry... j'ai pas pu résister
http://perso.orange.fr/galopin01/images/mdr3.jpg
 
3 jours d'exclusion ?
http://perso.orange.fr/galopin01/images/jesors2.jpg
A+


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

  [Excel-VBA]Fonction IF je pète un cable

 

Sujets relatifs
PHP et Active Directory (fonction ldap_search) [résolu]problème: Pagination moteur de recherche
recherche fonction HTML TO XMLEquivalent de "transférer à" via la fonction mail() ?
Faire apparaitre un Bouton d'une macro sous excel sous conditionImpression avec Excel dans un fichier externe
appel à une fonction avec un nombre de paramètres variable[C] fonction de structure
Programmes VBA[PHP][resolu] Comment appeler une fonction située....
Plus de sujets relatifs à : [Excel-VBA]Fonction IF je pète un cable


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