VBA "if"
Résolu/Fermé
Glady994
Messages postés
447
Date d'inscription
jeudi 24 décembre 2009
Statut
Membre
Dernière intervention
31 mars 2017
-
Modifié par irongege le 15/12/2011 à 15:48
Glady994 Messages postés 447 Date d'inscription jeudi 24 décembre 2009 Statut Membre Dernière intervention 31 mars 2017 - 15 déc. 2011 à 16:29
Glady994 Messages postés 447 Date d'inscription jeudi 24 décembre 2009 Statut Membre Dernière intervention 31 mars 2017 - 15 déc. 2011 à 16:29
8 réponses
Stringman621
Messages postés
1308
Date d'inscription
mardi 13 décembre 2005
Statut
Membre
Dernière intervention
1 septembre 2012
338
15 déc. 2011 à 15:17
15 déc. 2011 à 15:17
Bonjour,
En mettant une formule dans la case du type :
=SI(D2<4000;"fort","")
=SI(D3<4000;"fort","")
Et en copiant la formule pour chaque ligne du tableau ca devrait fonctionner ...
@+
En mettant une formule dans la case du type :
=SI(D2<4000;"fort","")
=SI(D3<4000;"fort","")
Et en copiant la formule pour chaque ligne du tableau ca devrait fonctionner ...
@+
Glady994
Messages postés
447
Date d'inscription
jeudi 24 décembre 2009
Statut
Membre
Dernière intervention
31 mars 2017
145
15 déc. 2011 à 15:23
15 déc. 2011 à 15:23
Je voudrai ne pas avoir à programmer chaque ligne car ce ne serait pas bon... Il faut que ça devienne automatique chaque fois qu'on rajoute une ligne j'avais pensé à un truc du genre "if montant <4000 then typedetaux = fort"
Glady994
Messages postés
447
Date d'inscription
jeudi 24 décembre 2009
Statut
Membre
Dernière intervention
31 mars 2017
145
15 déc. 2011 à 15:29
15 déc. 2011 à 15:29
d'ailleurs quand j'exécute cette commande, j'ai oublié de préciser qu'il n'y avais pas d'erreur mais que rien ne se passait... perduu :'(( !
Stringman621
Messages postés
1308
Date d'inscription
mardi 13 décembre 2005
Statut
Membre
Dernière intervention
1 septembre 2012
338
15 déc. 2011 à 15:37
15 déc. 2011 à 15:37
Ceci devrait t'aller alors :
If Target.Column = 4 And Target.Value <> "" Then 'correspondant à la colonne montant If Target.Value < 4000 Then Cells(Target.Row, 10) = "fort" Else Cells(Target.Row, 10) = "fort" End If End If
Stringman621
Messages postés
1308
Date d'inscription
mardi 13 décembre 2005
Statut
Membre
Dernière intervention
1 septembre 2012
338
15 déc. 2011 à 15:41
15 déc. 2011 à 15:41
bien sur dans le second if : l'un doit prendre la valeur "fort" et l'autre.... J'ai laisser "fort" uniquement pour l'exemple ;)
Glady994
Messages postés
447
Date d'inscription
jeudi 24 décembre 2009
Statut
Membre
Dernière intervention
31 mars 2017
145
15 déc. 2011 à 15:47
15 déc. 2011 à 15:47
Oui j'ai remarqué, merci ! :)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Glady994
Messages postés
447
Date d'inscription
jeudi 24 décembre 2009
Statut
Membre
Dernière intervention
31 mars 2017
145
Modifié par Glady994 le 15/12/2011 à 15:48
Modifié par Glady994 le 15/12/2011 à 15:48
Merci beaucoup!
, je l'ai mise dans une variable, ai-je fais une erreur? il m'affiche "erreur 424 : ob
jet requis"" ....... Aucune idée de ce que cela veut dire.. Quelqu'un a une idée? :p
Sub bou()
If Target.Column = 4 And Target.Value <> "" Then
If Target.Value < 4000 Then
Cells(Target.Row, 10) = "fort"
Else
Cells(Target.Row, 10) = "faible "
End If
End If
End Sub
, je l'ai mise dans une variable, ai-je fais une erreur? il m'affiche "erreur 424 : ob
jet requis"" ....... Aucune idée de ce que cela veut dire.. Quelqu'un a une idée? :p
Sub bou()
If Target.Column = 4 And Target.Value <> "" Then
If Target.Value < 4000 Then
Cells(Target.Row, 10) = "fort"
Else
Cells(Target.Row, 10) = "faible "
End If
End If
End Sub
Stringman621
Messages postés
1308
Date d'inscription
mardi 13 décembre 2005
Statut
Membre
Dernière intervention
1 septembre 2012
338
15 déc. 2011 à 15:48
15 déc. 2011 à 15:48
Oui, je me basais sur la sub suivante :
qui prend une valeur en paramètre "Target"
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 4 And Target.Value <> "" Then If Target.Value < 4000 Then Cells(Target.Row, 10) = "fort" Else Cells(Target.Row, 10) = "faible" End If End If End Sub
qui prend une valeur en paramètre "Target"
Glady994
Messages postés
447
Date d'inscription
jeudi 24 décembre 2009
Statut
Membre
Dernière intervention
31 mars 2017
145
15 déc. 2011 à 15:53
15 déc. 2011 à 15:53
Ouuh je connais pas du tout ce code :p. J'ai essayer de le copier tel quel pour être honnête et en l'exécutant, s'ouvre la fameuse fenêtre où l'ont doit choisir la macro à exécuter ........;
Le vba reste pour moi une énigme ..
Le vba reste pour moi une énigme ..
Stringman621
Messages postés
1308
Date d'inscription
mardi 13 décembre 2005
Statut
Membre
Dernière intervention
1 septembre 2012
338
15 déc. 2011 à 15:56
15 déc. 2011 à 15:56
tu n'as rien a exécuter tout se fait automatiquement ;)
Tu as juste à copier la sub dans la feuille et essaie de saisir une valeur dans la colonne "montant" et la colonne "type de taux" va se mettre a jour automatiquement dès que tu va valider la saisie du montant ;)
Tu as juste à copier la sub dans la feuille et essaie de saisir une valeur dans la colonne "montant" et la colonne "type de taux" va se mettre a jour automatiquement dès que tu va valider la saisie du montant ;)
Glady994
Messages postés
447
Date d'inscription
jeudi 24 décembre 2009
Statut
Membre
Dernière intervention
31 mars 2017
145
15 déc. 2011 à 15:59
15 déc. 2011 à 15:59
Génial! :p. Merci à toi ça me rendait dingue !
ps: je laisse le sujet ouvert car je doit encore le rallonger un petit peu :p.
ps: je laisse le sujet ouvert car je doit encore le rallonger un petit peu :p.
Glady994
Messages postés
447
Date d'inscription
jeudi 24 décembre 2009
Statut
Membre
Dernière intervention
31 mars 2017
145
Modifié par Glady994 le 15/12/2011 à 16:13
Modifié par Glady994 le 15/12/2011 à 16:13
J'ai rajouter ceci pour colorier certaines cases
mais à mon grand "désétonnement" ça n'a pas fonctionné :p (il ne se passe rien). Quelqu'un sait pourquoi?
Sub Worksheet_Change2(ByVal Target As Range) If Target.Column = 10 And Target.Value <> "" Then If Target.Value = "Fort" Then cell.Interior.ColorIndex = 3 ElseIf Target.Value = "Très faible" Then cell.Interior.ColorIndex = 4 End If End If End Sub
mais à mon grand "désétonnement" ça n'a pas fonctionné :p (il ne se passe rien). Quelqu'un sait pourquoi?
Stringman621
Messages postés
1308
Date d'inscription
mardi 13 décembre 2005
Statut
Membre
Dernière intervention
1 septembre 2012
338
15 déc. 2011 à 16:13
15 déc. 2011 à 16:13
Parce qu'il ne peut avoir qu'une Sub Worksheet_change, si tu souhaites metre de la couleur il suffit de faire ca :
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 4 And Target.Value <> "" Then If Target.Value < 4000 Then Cells(Target.Row, 10) = "fort" Cells(Target.Row, 10).Interior.ColorIndex = 3 Else Cells(Target.Row, 10) = "faible" Cells(Target.Row, 10).Interior.ColorIndex = 4 End If End If End Sub
Glady994
Messages postés
447
Date d'inscription
jeudi 24 décembre 2009
Statut
Membre
Dernière intervention
31 mars 2017
145
15 déc. 2011 à 16:19
15 déc. 2011 à 16:19
J'ai suivi ton conseil mais malheureusement rien ne se colore (y'a -t il une option a activer ou quoi que ce soit?)
(Merci merci merci pour ton aide)
(Merci merci merci pour ton aide)
Glady994
Messages postés
447
Date d'inscription
jeudi 24 décembre 2009
Statut
Membre
Dernière intervention
31 mars 2017
145
15 déc. 2011 à 16:22
15 déc. 2011 à 16:22
deuxième tentative et ça fonctionne mercibeaucoup !!
Stringman621
Messages postés
1308
Date d'inscription
mardi 13 décembre 2005
Statut
Membre
Dernière intervention
1 septembre 2012
338
15 déc. 2011 à 16:22
15 déc. 2011 à 16:22
rien n'est à activer si tu as juste rajouter la ligne :
après "fort", normalement cela devrait fonctionner...
Rassure moi le texte "Fort" et "Très faible" fonctionne encore, c'est bien la coloration qui ne fonctionne pas ?
Cells(Target.Row, 10).Interior.ColorIndex = 3
après "fort", normalement cela devrait fonctionner...
Rassure moi le texte "Fort" et "Très faible" fonctionne encore, c'est bien la coloration qui ne fonctionne pas ?
Glady994
Messages postés
447
Date d'inscription
jeudi 24 décembre 2009
Statut
Membre
Dernière intervention
31 mars 2017
145
15 déc. 2011 à 16:29
15 déc. 2011 à 16:29
deuxième tentative et ça fonctionne mercibeaucoup !!
ps: Tout fonctionne comme il faut maintenant merci à toi!
ps: Tout fonctionne comme il faut maintenant merci à toi!