[Déplacé VB6 --> VBA] Fonction SI

Utilisateur anonyme - 21 avril 2010 à 17:05
 Utilisateur anonyme - 22 avril 2010 à 15:49
Bonjour ,

Jai un bloc de 3 cases d'options:

vert (valeur 1)
rouge (Valeur 2)
jaune (valeur 3)

Jai une autre cellule (a1) ou je met la quantitée de la couleur désiré.

EX: je choisis l.option rouge et dans la cellule a1 j'inscrit 3 (comme sa j'ai 3 rouge.

Je veut avoir une cellule qui m'indique un msg d'erreur quand je choisis une couleur et que ma cellule a1 est tjrs a zéro....

SI valeur 1,2ou3 sont choisis, la cellule a1 doit avoir une valeur > (plus grande) que zéro sinon une message ERREUR s'inscrit.

merci beaucoup de votre aide !

4 réponses

jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
22 avril 2010 à 14:02
bonjour,

J'essaie de comprendre ce que tu désires exactement :

Jai un bloc de 3 cases d'options:
vert (valeur 1)
rouge (Valeur 2)
jaune (valeur 3)

=> veux dire que tu as placé des OptionButton ? et les 1,2 ou 3 correspondent à la valeur que doit prendre la cellule(A1) lorsque l'un d'eux est choisi ?

Si c'est bien ça.. je te propose le code suivant :
'procédure permettant de tester la valeur des Optionbutton de la feuille active
Sub Boucle_OptionButton2()
Dim i As Byte
        For i = 1 To 3 ' boucle sur les OptionButtons
            Nom_Ob = ActiveSheet.OLEObjects("OptionButton" & i).Name 'recupere le nom du control
            valeur_Ob = ActiveSheet.OLEObjects("OptionButton" & i).Object.Value ' recupere sa valeur
            'Test si "true" et écrit la valeur en A1
            If valeur_Ob True Then Range("A1").Value i
        Next i
End Sub


Si tu veux que le code s'active lorsque tu selectionnes un des boutons :
Private Sub OptionButton1_Click()
  Call Boucle_OptionButton2
End Sub


----------------------------------------------

Apres.. sinon;...y'a encore plus simple :

Pour chaque Optionbutton tu places un code du genre :

Private Sub OptionButton1_Click()
Range("A1").Value = 1
End Sub
Private Sub OptionButton2_Click()
Range("A1").Value = 2
End Sub
Private Sub OptionButton3_Click()
Range("A1").Value = 3
End Sub



Cordialement,
Jordane,
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
22 avril 2010 à 14:08
arf..
j'ai oublié la partie où tu demandes un message d'erreur si la cellule est à zéro...

Bon :
1 - Quand doit se faire la vérification ? au momment de quitter la feuille par exemple ?
2 - Quel genre de message désires tu ? Message écrit dans une cellule ou fenetre de message ?

tu peux par exemple utiliser un code comme celui-ci

Private Sub Worksheet_Activate()
 If Range("A1").Value = 0 Then MsgBox "Attention.. Aucune couleur n'a été choisie"
End Sub



Cordialement,
Jordane,
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
22 avril 2010 à 14:17
Encore moi...

petite rectif sur le code précédent : il faut écrire Worksheet_Deactivate au lieu de Activate.

ensuite....

je viens de penser à autre chose... si tu ne veux pas passer par (trop) de la programmation VBA.. tu peux tout simplement utiliser une fonction d'excel qui s'appelle la VALIDATION

En gros, tu selectionnes ta cellule A1, ensuite tu vas dans le menu Données puis dans Validation et tu choisis Autoriser : Liste
tu mets ensuite les valeurs : 1;2;3 puis dans les autres onglets tu paramètre ton message d'erreur et la forme de ta fenetre....

Résultat : les gens ne porront QUE mettre du 1;2 ou 3 dans la cellule A1..

et si vraiment tu veux vérifier que la cellule ne restera pas vide en quittant la feuille tu peux placer le code :
Private Sub Worksheet_Deactivate()
    If Range("A1").Value = "" Then MsgBox "Attention....blablabla"
 End Sub


Cordialement,
Jordane,
0
Utilisateur anonyme
22 avril 2010 à 15:49
Un gros merci ! :-) mais le VBA est un peut trop compliquer pour moi disons ! lol !
Je croyais pouvoir utilisé la fonction SI....avec des option button

option button 1 (couleur rouge)
option button 2 (couleur vert)
option button 3 (couleur bleu)
(mes options buttons sont relié a une cellule qui donne la valeur 1,2ou3.)

Les gens doivent sélection la couleur de chandail quils veulent soit... option button 1(rouge),2(vert),ou3(bleu).

Ensuite dans la cellule (A1) ils doivent inscrire le nombre de chandail voulu.

Si jamais la personne sélectionne un option button et ommet d'inscrire le nombre de chandail voulu (cellule A1) Un msg d'erreur doit apparaitre ex: "vous devez inscrire le nombre de chandail voulu dans la cellule A1)


Je croyais pouvoir faire cela avec la fonction SI. SI la cellule ede référence des mes option button indique 1,2ou3; A1 > (plus grabd que) 0 (zéro); sinon "msg d'erreur".

Je vais esasyer ce que tu me propose et je vais voir si je suis capable de faire fonctionenr cela ! hihih

merci encore
0
Rejoignez-nous