Création d'une variable dichotomique

Bonjour,

Je veux mettre en place une macro pour la création d'une nouvelle variable dichotomique. Par exemple, sur la base ci-dessous, je veux établir les suivantes critères: pour la variable Age (colonne B, si la valeur est dans l'intervalle "<30 ans", la nouvelle variable (elle doit apparaître dans la colonne C) doit avoir la variante de réponse ''Oui". Puis, si la meme valeur n'est pas inclue dans l'intervalle "<30 ans", on doit avoir la valeur "Non".

J'ai besoin de votre aide, si c'est possible.
Merci d'avance. :)

4 réponses

  1. Contributeur
    suggestion:
    Public Sub age()
    Dim colB As Range, cel As Range
    Set colB = Intersect(ActiveSheet.[B:B], ActiveSheet.UsedRange)
    For Each cel In colB
        If IsNumeric(cel) And Not IsEmpty(cel) Then
            If cel < 30 Then
                cel.Offset(0, 1) = "Oui"
            Else
                cel.Offset(0, 1) = "Non"
            End If
        End If
    Next cel
    End Sub
    1. Bonjour

      Et pourquoi pas une simple formule avec un résultat dichotomique :
      =SI(B2<30;"Oui";"Non")
      1. Merci, mais j'ai besoin du code vba.
      2. Postes le code que tu as déjà écrit pour qu'on comprenne le contexte !
    2. Ce n'est pas un test dichotomique mais un simple test conditionnel.
      Sur Excel de mémoire dans la case où tu veux le résultat, par exemple C2, entre la formule :

      =SI(B2<30;"Oui";"Non")

      et répète la formule vers le bas (les lignes de B2 doivent changer en B3, B4...)

      Pour supprimer les "Non" inutiles, il faut imbriquer une deuxième conditions dans la troisème partie de ton SI relative au test B2<30 non vrai. Par exemple :

      =SI(B2<30;"Oui"; SI(B2="";"";"Non"))

      La formule se lit : SI la case avant à gauche est inférieur à 30, affiche "Oui", sinon, SI la case avant à gauche est vide affiche une case vide (""), sinon affiche "Non".
      Idem, faut répéter la formule en tirant le petit carré vers le bas de C2
      On aurait pu écrire aussi :

      =SI(B2="";""; SI(B2<30;"Oui";"Non"))

      as you like...
      1. Contributeur
        bonjour, peux-tu compléter ton exemple avec le résultat que tu souhaites?