XL 2010 Comptage entre 2 date selon critère

NICOALBERT

XLDnaute Occasionnel
Bonjour le Forum ,

Je vient vers vous car je n'arrive pas à calculer le nombre de jour entre 2 date selon Critère , enfin si si c'est sur même ligne est sans critère avec "=DATEDIF(A1;B1;"d") par exemple .

Mais la les dates son sur une seul colonnes , ne se suivent pas et recherche selon Equipe .

Je m'explique , ce que cherche à calculer c'est le nombre de jour depuis le dernier Match et le nombre de jour avant le prochain Match d'une même équipe .

Je vous joint un petit fichier en exemple qui parlera peut être mieux que moi .

cdlt Nicoalbert .
 

Pièces jointes

  • Calcul entre 2 date selon equipe.xlsx
    93.2 KB · Affichages: 19

Dranreb

XLDnaute Barbatruc
Bonjour.
Pour le nombre de jours avant le prochain match, en G2, à propager sur 2840 lignes :
Code:
=SIERREUR(DECALER($A2;EQUIV($E2;$E3:$E$2842;0);0)-$A2;"")
Pour celui depuis le dernier, je ne sais pas. Désolé.
Par macro je saurais faire.
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Par macro je pense que je le ferais comme ça :
VB:
Sub Macro1()
   Dim Rng As Range
   Set Rng = Feuil1.UsedRange
   Set Rng = Rng.Offset(1).Resize(Rng.Rows.Count - 1, 8)
   With Rng.Columns(8): .Formula = "=ROW()-1": .Value = .Value: End With
   With Feuil1.Sort
      .SortFields.Clear
      .SortFields.Add2 Key:=Rng.Columns(5), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
      .SortFields.Add2 Key:=Rng.Columns(1), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
      .SetRange Rng: .Header = xlNo: .MatchCase = False: .Orientation = xlTopToBottom
      .Apply: End With
   With Rng.Columns(7): .FormulaR1C1 = "=IF(R[1]C5=RC5,R[1]C1-RC1,"""")": .Value = .Value: End With
   Rng(1, 6).Value = "": Rng(2, 6).Resize(Rng.Rows.Count - 1).Value = Rng.Columns(7).Value
   With Feuil1.Sort
      .SortFields.Clear
      .SortFields.Add2 Key:=Rng.Columns(8), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
      .SetRange Rng: .Header = xlNo: .MatchCase = False: .Orientation = xlTopToBottom
      .Apply: End With
   Rng.Columns(8).ClearContents
   End Sub
 

Dranreb

XLDnaute Barbatruc
Dans mon brouillon engendré par l'enregistreur de macro il m'avait mis des .SortFields.Add2
Ça m'avait surpris, mais ça marchait (Excel 2016).
Chez vous ça marcherait peut être mieux en mettant .SortFields.Add ?
(Chez moi ça marche aussi, même résultat)
 

Discussions similaires

Statistiques des forums

Discussions
311 709
Messages
2 081 756
Membres
101 812
dernier inscrit
trufu