Formule avec plusieurs "SI"

Résolu
bod77 Messages postés 54 Date d'inscription   Statut Membre Dernière intervention   -  
bod77 Messages postés 54 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je souhaite réaliser une formule avec plusieurs constante :

On a un jour J correspondant à une date et je souhaite :
si J < 30/06/2012 alors résultat "A" sinon
si 01/07/2012 < J < 31/12/2012 alors "B" sinon
si J >= 01/01/2013 alors "C"

Merci pour votre aide car là je patauge
A voir également:

4 réponses

romain7254 Messages postés 1020 Date d'inscription   Statut Membre Dernière intervention   297
 
Bonjour,

Avec une macro, c'est possible :

Sub test()
Dim rng As Range, cell As Range

Set rng = Range("J1:J" & Range("J" & Rows.Count).End(xlUp).Row) 'On peut ajuster la range en fonction des cases où se trouve les valeurs

Application.ScreenUpdating = False

For Each cell In rng.Cells
If CDate("01/07/2012") < cell.Value < CDate("31/12/2012") Then
cell.Offset(, -1).Value = "B"
End If
If cell.Value >= CDate("01/01/2013") Then
cell.Offset(, -1).Value = "C"
End If
If cell.Value < CDate("30/06/2012") Then
cell.Offset(, -1).Value = "A"
End If
If cell.Value = "" Then
cell.Offset(, -1).Value = ""
End If
Next

Application.ScreenUpdating = True

End Sub


J = Colonne contenant les dates
I = Colonne contenant les résultats A, B ou C.

Je reste à votre disposition pour toute autre question.

Cordialement, Romain.
0
Bruce Willix Messages postés 11966 Date d'inscription   Statut Contributeur Dernière intervention   2 594
 
Tu y es presque pourtant: quand tu écris du pseudo-code - comme tu le fais d'ailleurs très bien ici - la formule est à deux pas.

Excel ne connait pas "est compris entre", par contre il connait "est plus grand que ET est plus petit que". Dans ton cas:

Pseudo-code #2:

SI jour EST INFERIEUR OU EGAL A date-pivot1 ALORS A
SINON SI jour EST PLUS GRAND QUE date-pivot1 ET QUE jour EST PLUS PETIT OU EGAL A date-pivot2 ALORS B
SINON SI jour EST PLUS GRAND QUE date-pivot2 ALORS C

En Excel:
- avec jour dans la cellulle A1, date-pivot1 dans la cellule A2 et date-pivot2 dans la cellule A3
- B1 contient le résultat A, B2 le résultat B et B3 le résultat C

=SI(A1<=A2;B1;SI(ET(A1>A2;A1<=A3);B2;B3))

0
romain7254 Messages postés 1020 Date d'inscription   Statut Membre Dernière intervention   297
 
Dans une macro, le format : Date < valeur < Date fonctionne.
0
bod77 Messages postés 54 Date d'inscription   Statut Membre Dernière intervention  
 
oulà cela devoient compliqué, on a pas la possibilité de faire cela avec une fomrule avec des SI.

j'avais fait de mon côté mais cela ne marche pas :

date se trouve en B17 :

=SI(DATEVAL(B17)<"30/6/2012";"A";SI(ET(DATEVAL(B17)>"01/07/2012";DATEVAL(B17)<="31/12/2012");"B";SI(DATEVAL(B17)>="01/01/2013";"C")))
0
Bruce Willix Messages postés 11966 Date d'inscription   Statut Contributeur Dernière intervention   2 594
 
Bonjour,

Pourquoi vous utilisez dateval ? A mon avis votre problème vient de la car cette fonction transforme votre date en texte. Et là la comparaison ne fonctionne plus.

Il faut garder les dates, et mettres les dates de fin juin et fin décembre dans des cellules.

Voici un exemple: https://www.cjoint.com/?0ByqwRfoQ9m
0
bod77 Messages postés 54 Date d'inscription   Statut Membre Dernière intervention  
 
ok je vais essayer avec ça, merci bcp pour votre aide.
0