Programmation Excel
LANGAZOU
Messages postés
95
Date d'inscription
Statut
Membre
Dernière intervention
-
LANGAZOU Messages postés 95 Date d'inscription Statut Membre Dernière intervention -
LANGAZOU Messages postés 95 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je suis débutant en VBA EXCEL et je souhaite trouver une solution à mon serieux problème qui est le suivant:
j'ai créé un USERFORM ("PLACEMENT") avec des TEXTBOX intitulé (Montant, période, Taux). je voulais integrer une grille de taux au sein de mon commandbutton ("valider").
par exemple: si le 50< Montant<100 et 10< période <90 le taux ne doit pas dépasser 1.20%, si ca dépasse le textbox "Taux" s'efface automatiquement et un message box se declenche " depassement de la grille de taux".
j'ai plusieurs conditions à mettre en place au même temps, j'ai essayé la fonction If mais ca fonctionne pas. quelqu'un m'a dit qu'il faut utiliser une matrice et franchement aucune idée sur ca :?.
Merci pour votre précieuse aide.
Je suis débutant en VBA EXCEL et je souhaite trouver une solution à mon serieux problème qui est le suivant:
j'ai créé un USERFORM ("PLACEMENT") avec des TEXTBOX intitulé (Montant, période, Taux). je voulais integrer une grille de taux au sein de mon commandbutton ("valider").
par exemple: si le 50< Montant<100 et 10< période <90 le taux ne doit pas dépasser 1.20%, si ca dépasse le textbox "Taux" s'efface automatiquement et un message box se declenche " depassement de la grille de taux".
j'ai plusieurs conditions à mettre en place au même temps, j'ai essayé la fonction If mais ca fonctionne pas. quelqu'un m'a dit qu'il faut utiliser une matrice et franchement aucune idée sur ca :?.
Merci pour votre précieuse aide.
A voir également:
- Programmation Excel
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
- Excel moyenne - Guide
2 réponses
Hello !
J'ai du mal à bien comprendre ce que tu cherches à faire, peux-tu uploader un doc banalisé sous Cjoint.com stp ?
Dans tous les cas, la fonction If peut facilement se combiner avec elle-même pour intégrer plusieurs conditions :
If ... Then
If ... Then
End If
End If
Autre chose, pour un Userform, il est important de bien situer ton code, par défaut quand tu cliques sur un élément, le code affiché est dans la catégorie "CHANGE" et se nomme en conséquent, par ex : Sub Textbox1_Change
Selon ce que tu veux coder, change la catégorie (BeforeUpdate est souvent utilisé mais d'autres également !).
J'ai du mal à bien comprendre ce que tu cherches à faire, peux-tu uploader un doc banalisé sous Cjoint.com stp ?
Dans tous les cas, la fonction If peut facilement se combiner avec elle-même pour intégrer plusieurs conditions :
If ... Then
If ... Then
End If
End If
Autre chose, pour un Userform, il est important de bien situer ton code, par défaut quand tu cliques sur un élément, le code affiché est dans la catégorie "CHANGE" et se nomme en conséquent, par ex : Sub Textbox1_Change
Selon ce que tu veux coder, change la catégorie (BeforeUpdate est souvent utilisé mais d'autres également !).
Private Sub TextBox11_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
If 90 <= textbox7.Value < 180 And 30 < TextBox3.Value <= 100 And textbox11.Value > 0.5 Then
MsgBox "Dépassement de la grille"
textbox11.Value = ""
End If
If 90 <= textbox7.Value < 180 And 100 < TextBox3.Value < 500 And textbox11.Value > 1.25 Then
MsgBox "Dépassement de la grille"
textbox11.Value = ""
End If
If 90 <= textbox7.Value < 180 And 500 <= TextBox3.Value <= 3000 And textbox11.Value > 1.5 Then
MsgBox "Dépassement de la grille"
textbox11.Value = ""
End If
If 90 <= textbox7.Value < 180 And 3000 < TextBox3.Value <= 5000 And textbox11.Value > 1.6 Then
MsgBox "Dépassement de la grille"
textbox11.Value = ""
End If
If 180 <= textbox7.Value < 360 And 0 < TextBox3.Value <= 100 And textbox11.Value > 0.7 Then
MsgBox "Dépassement de la grille"
textbox11.Value = ""
End If
If 180 <= textbox7.Value < 360 And 100 < TextBox3.Value < 500 And textbox11.Value > 1.3 Then
MsgBox "Dépassement de la grille"
textbox11.Value = ""
End If
If 180 <= textbox7.Value < 360 And 500 < TextBox3.Value <= 3000 And textbox11.Value > 1.6 Then
MsgBox "Dépassement de la grille"
textbox11.Value = ""
End If
If 180 <= textbox7.Value < 360 And 3000 < TextBox3.Value <= 5000 And textbox11.Value > 1.7 Then
MsgBox "Dépassement de la grille"
textbox11.Value = ""
End If
End Sub
Je vois déjà que tu es en BeforeUpdate, peut-être que cela vient de là, mais encore une fois j'ai besoin d'un document pour voir à quel niveau ça bloque..
On ne peut pas mettre plusieurs inéquations (du genre 180 <= textbox7.Value < 360).
Il va falloir ajouter des "And"...
Il me semble plus élégant d'indiquer la valeur maximale admise après MàJ des TextBox 3 et 7.
A+
Merci.