Bonjour,
Comme d'habitude, j'ai commencé par chercher sur google, puis sur ce forum et en dernier recours je vous soumet mon problème. le fichier est joint pour faciliter la compréhension. Donc dans mon fichier excel, j'ai une colonne indiquant le type de document (courrier ou fax) et le jour et l'heure de réception mon but est de savoir pour un fax combien j'ai reçu d'autres fax dans l'heure précédent. Je ne suis pas du tout à l'aise dans les formule excel donc j'ai fait en vba une fonction qui fonctionne correctement Mais malheureusement, l'appeler pour chaque fax est très très long. Donc pour raccourcir le temps d'execution je voudrais utiliser des fonction excel j'ai essayer de m'arranger avec NB.SI et SOMMEPROD Mais je n'y arrive pas du tout ..... entre autre à cause du format de la date/heure de réception
si vous pouviez me donner un coup de main j'en serai fort aise.
Je colle la fonction VBA que j'avait écrite et qui fonctionne. Peut-être que cela peut vous intéresser ou même vous aider à cerner mon besoin :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 Function nbFax(ByVal HeureDeb As Date, ByVal HeureFin As Date) As Integer Dim i As Double i = 0 nbFax = 0 Do While ActiveWorkbook.Sheets("data").Range("E6").Offset(i, 0).Value <> "" If CDate(Left(ActiveWorkbook.Sheets("data").Range("E6").Offset(i, 0).Value, 19)) > HeureFin Then Exit Function End If If ActiveWorkbook.Sheets("data").Range("D6").Offset(i, 0).Value = "FAX" Then If CDate(Left(ActiveWorkbook.Sheets("data").Range("E6").Offset(i, 0).Value, 19)) >= HeureDeb Then nbFax = nbFax + 1 End If End If i = i + 1 Loop End Function
Partager