Formule sous conditions sous Excel

Résolu
skaybi Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -  
bouket Messages postés 143 Date d'inscription   Statut Membre Dernière intervention   -
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".

8 réponses

ben13.51 Messages postés 112 Date d'inscription   Statut Membre Dernière intervention   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
skaybi Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
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
ben13.51 Messages postés 112 Date d'inscription   Statut Membre Dernière intervention   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
bouket Messages postés 143 Date d'inscription   Statut Membre Dernière intervention   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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ben13.51 Messages postés 112 Date d'inscription   Statut Membre Dernière intervention   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
bouket Messages postés 143 Date d'inscription   Statut Membre Dernière intervention   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
skaybi Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
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
bouket Messages postés 143 Date d'inscription   Statut Membre Dernière intervention   22
 
Très bien! Normalement la macro marche, je l'ai moi même testé... si elle peut servir à quelqu'un ... ;) !

++
0