VBA "if"

Résolu
Bonjour à tous!
Dans le cadre d'un travail je dois créer un code vba. Celui ci devra mettre l'intitulé "fort" dans une colonne("typedetaux") si le chiffre dans une autre colonne (montant) est inférieure à 4000... Quelqu'un pourrait m'aider svp?? c'est urgent pour demain et les gens de mon groupe ont décidé de me laisser dans la m***.
Normalement ce code doit faire une quinzaine de ligne mais je me disais qu'une fois débloqué je pourrai l'augmenter avec d'autre montant et des "elseif" ?

Merci d'avance !!

Voilà un screen pour rendre ça plus visible.
http://hpics.li/42b2c0e

8 réponses

  1. 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 ...

    @+
    0
    1. 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"
      0
      1. 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 :'(( !
        0
        1. 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
          
          0
          1. bien sur dans le second if : l'un doit prendre la valeur "fort" et l'autre.... J'ai laisser "fort" uniquement pour l'exemple ;)
            0
          2. Oui j'ai remarqué, merci ! :)
            0
        2. 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
          0
          1. Oui, je me basais sur la sub suivante :

            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"
            0
            1. 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 ..
              0
            2. 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 ;)
              0
            3. 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.
              0
          2. J'ai rajouter ceci pour colorier certaines cases
            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?
            0
            1. 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
              0
              1. 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)
                0
              2. deuxième tentative et ça fonctionne mercibeaucoup !!
                0
              3. rien n'est à activer si tu as juste rajouter la ligne :
                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 ?
                0
              4. deuxième tentative et ça fonctionne mercibeaucoup !!
                ps: Tout fonctionne comme il faut maintenant merci à toi!
                0