Formule sous conditions sous Excel

Résolu
skaybi Messages postés 6 Statut Membre -  
bouket Messages postés 147 Statut Membre -
Bonjour,

Je me prend la tête depuis quelques jours sur une formule à priori bidon, mais qui ne fonctionne pas.
Je vous explique voici les conditions que je veux mettre sous formule.
"X" représente un nombre de jour, qui sera dans la colonne B
"Ancienneté" represente l'intervalle où su situera X, qui sera dans la colonne C

Si X<7 alors dans la colonne C, il sera noté: "1: >7 jours"
Si 7<X<15 alors dans la colonne C, il sera noté: "2: 7 jours < X < 15 jours"
Si 15<X<30 alors dans la colonne C, il sera noté: "3: 15 jours < X < 1 mois"
Si 30<X<90 alors dans la colonne C, il sera noté: "4: 1 mois < X < 3 mois"
Si 90<X<180 alors dans la colonne C, il sera noté: "5: 3 mois < X < 6 mois"
Si 180<X alors dans la colonne C, il sera noté: "6: >6 mois "

Voici 2 formules qui auraient du marcher, mais malheureusement il me met pour la premiere formule, soit un ensemble vide ou "6: >6 mois"

=IF(C2<7;"1 : < 7 jours";IF(7<C2<15;"2 : 7 jours < X < 15 jours"; IF(15<C2<30;"3 : 15 jours < X < 1mois";IF(30<C2<90;"4 : 1mois < X < 3mois";IF(90<C2<180;"5 : 3 mois < X < 6 mois";IF(180<C2;"6 : > 6 mois";""))))))

Pour la 2ème formule, il ne me met que "6: >6 mois"

=IF(C2<7;"1 : < 7 jours";IF(7<C2<15;"2 : 7 jours < X < 15 jours"; IF(15<C2<30;"3 : 15 jours < X < 1mois";IF(30<C2<90;"4 : 1mois < X < 3mois";IF(90<C2<180;"5 : 3 mois < X < 6 mois";"6 : > 6 mois";"")))))

En espérant d'avoir été clair.
Merci d'avance pour vos aides.
PS:Mon Pc est configuré en anglais c'est pour ça que j'utilise "If" au lieu de "Si".
Configuration: Windows XP Internet Explorer 6.0

8 réponses

  1. ben13.51 Messages postés 115 Statut Membre 7
     
    Première remarque tes intervalles n'englobe jamais les bornes...
    Tu met if...<7 donc 7 n'est pas compris puis tu met if 7<...<15, 7 n'est toujours pas compris idem pour toutes tes bornes
    Donc je te conseil de mettre par exemple if...<=7 pour inclure le 7 puis if 7<...<=15
    0
  2. skaybi Messages postés 6 Statut Membre
     
    Merci pour ta remarque, j'ai rectifié la formule, mais le problème persiste.
    On dirait qu'il prend en compte que la derniere condition et que les autres conditions, ont été écrasé.
    0
  3. ben13.51 Messages postés 115 Statut Membre 7
     
    Je crois que j'ai saisi le problème...
    Il me semble qu'il n'est pas possible d'imbriquer plus de 5 if l'un dans l'autre
    en tout cas ma version ne l'accèpte pas
    Excel 2003 Fr

    Non en fait après vérif c 7 if
    0
  4. bouket Messages postés 147 Statut Membre 22
     
    Bonjour,

    J 'ai une question bête. Pourquoi dans ta formule tu utilises comme comparaison C2 alors que tu regardes dans la colonne B ? Ne devrait ce pas être B2 que tu compares ?

    Sinon, tu peux le faire avec une macro et c'est pas trop long ...

    Je suis dessus, prêt dans 10 minutes ;)
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. ben13.51 Messages postés 115 Statut Membre 7
     
    essaye ça en traduisant les formules
    =SI(C2<7;"1 : < 7 jours";SI(ET(7<C2;C2<15);"2 : 7 jours < X < 15 jours"; SI(ET(15<C2;C2<30);"3 : 15 jours < X < 1mois";SI(ET(30<C2;C2<90);"4 : 1mois < X < 3mois";SI(ET(90<C2;C2<180);"5 : 3 mois < X < 6 mois";"6 : > 6 mois")))))
    0
  7. bouket Messages postés 147 Statut Membre 22
     
    Voilà :

    Sub Macro1()
    '
    ' Macro1 Macro
    '
    '
    Dim X As Integer
    Dim fin_table As Integer
    fin_table = 2
    Do
    If fin_table > 2000 Then Exit Do
    fin_table = fin_table + 1
    Loop While Cells(fin_table, 2) <> ""
    fin_table = fin_table - 1

    For i = 2 To fin_table

    Cells(i, 2).Select
    X = Cells(i, 2).Value

    If X < 8 Then
    Cells(i, 3).Value = "1: >7 jours"
    End If
    If (7 < X And X < 16) Then
    Cells(i, 3).Value = "2: 7 jours < X < 15 jours"
    End If
    If (15 < X And X < 31) Then
    Cells(i, 3).Value = "3: 15 jours < X < 1 mois"
    End If
    If (30 < X And X < 91) Then
    Cells(i, 3).Value = "4: 1 mois < X < 3 mois"
    End If
    If (90 < X And X < 181) Then
    Cells(i, 3).Value = "5: 3 mois < X < 6 mois"
    End If
    If (180 < X) Then
    Cells(i, 3).Value = "6: >6 mois"
    End If

    Next i

    End Sub

    Si tu as des questions, hésite pas !
    Au passage : le problème est surement du au fait que tu utilisais mal le If. Je pense que la rectification dans le message précédent le mien reprend la condition 90 < X And X < 181, c'est à dire la séparation des deux conditions.
    Sinon, il a conflit : ex: pour 75... 75 est plus petit que 180 ... donc il prend la dernière chose qu'il voit...
    0
  8. skaybi Messages postés 6 Statut Membre
     
    Merci Ben ta formule fonctionne!!!!
    Mais c'est bizrre que la mienne ne fonctionne pas, encore un mystère de l'informatique.
    Bouket, je vais tester ta macro, je te dis si ça marche.
    Merci encore à vous deux pour votre aide.
    0
  9. bouket Messages postés 147 Statut Membre 22
     
    Très bien! Normalement la macro marche, je l'ai moi même testé... si elle peut servir à quelqu'un ... ;) !

    ++
    0