VBA "if"

Résolu
Glady994 Messages postés 530 Statut Membre -  
Glady994 Messages postés 530 Statut Membre -
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. Stringman621 Messages postés 1726 Date d'inscription   Statut Membre Dernière intervention   340
     
    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
  2. Glady994 Messages postés 530 Statut Membre 145
     
    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
  3. Glady994 Messages postés 530 Statut Membre 145
     
    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
  4. Stringman621 Messages postés 1726 Date d'inscription   Statut Membre Dernière intervention   340
     
    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. Stringman621 Messages postés 1726 Date d'inscription   Statut Membre Dernière intervention   340
       
      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. Glady994 Messages postés 530 Statut Membre 145
       
      Oui j'ai remarqué, merci ! :)
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Glady994 Messages postés 530 Statut Membre 145
     
    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
  7. Stringman621 Messages postés 1726 Date d'inscription   Statut Membre Dernière intervention   340
     
    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. Glady994 Messages postés 530 Statut Membre 145
       
      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. Stringman621 Messages postés 1726 Date d'inscription   Statut Membre Dernière intervention   340
       
      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. Glady994 Messages postés 530 Statut Membre 145
       
      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
  8. Glady994 Messages postés 530 Statut Membre 145
     
    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
  9. Stringman621 Messages postés 1726 Date d'inscription   Statut Membre Dernière intervention   340
     
    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. Glady994 Messages postés 530 Statut Membre 145
       
      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. Glady994 Messages postés 530 Statut Membre 145
       
      deuxième tentative et ça fonctionne mercibeaucoup !!
      0
    3. Stringman621 Messages postés 1726 Date d'inscription   Statut Membre Dernière intervention   340
       
      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. Glady994 Messages postés 530 Statut Membre 145
       
      deuxième tentative et ça fonctionne mercibeaucoup !!
      ps: Tout fonctionne comme il faut maintenant merci à toi!
      0