Formule avec plusieurs "SI"

Résolu
bod77 Messages postés 52 Date d'inscription   Statut Membre Dernière intervention   -  
bod77 Messages postés 52 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

4 réponses

  1. romain7254 Messages postés 1071 Statut Membre 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
  2. Bruce Willix Messages postés 12376 Date d'inscription   Statut Contributeur Dernière intervention   2 638
     
    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
    1. romain7254 Messages postés 1071 Statut Membre 297
       
      Dans une macro, le format : Date < valeur < Date fonctionne.
      0
  3. bod77 Messages postés 52 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
    1. Bruce Willix Messages postés 12376 Date d'inscription   Statut Contributeur Dernière intervention   2 638
       
      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
  4. bod77 Messages postés 52 Date d'inscription   Statut Membre Dernière intervention  
     
    ok je vais essayer avec ça, merci bcp pour votre aide.
    0