Bonjour à tous,
Je fais ici mon premier post suite à une galère assez importante sur un sujet. Habituellement je travaille sur Power BI mais là j'ai un sujet que je suis incapable de traiter sans du code (du moins selon moi).
Voici la situation, j'ai un fichier qui contient des logs de connexions à différents serveurs par différents utilisateurs. Dans ces logs on récupère l'identifiant de la personne, et sa plage de connexion et le serveur sur lequel il s'est connecté naturellement.
L'idée est, pour chaque ligne de compter les autres lignes qui rentrent dans cet intervalle de temps d'une part, et qui d'autre part portent sur le même serveur et sur un identifiant différent.
Pièce jointe 580340
Peut être qu'un ensemble de conditions avec NB.SI.ENS pourrait fonctionner, mais je n'ai pas été en mesure d'y arriver...
J'ai tenté en VBA mais mes connaissances remontent à loin et même loin elles sont bien maigres... Voici quand même un aperçu, j'arrivais à remplir la première ligne mais en suivant puisque mes objets avaient pris la valeur de cellules et non plus les cellules en elles-mêmes, ça ne fonctionnait plus :
Le must serait d'éventuellement supprimer les lignes qui entrent dans un intervalle pour pas en créer sans cesse mais cela viendra plus tard !Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65 Sub timeline() Dim C As Object Dim d As Object Dim P As Object Dim G As Object Dim J As Object Dim L As Object Dim K As Object Dim T As Object Dim basedate As Double Dim start As Double Dim enddate As Double Dim IGGbase As String Dim IGGcompare As String Dim Serverbase As String Dim Servercompare As String Dim loops As Integer start = Range("B2").Value Set d = Range("B2").Cells enddate = Range("C2").Value Set P = Range("C2").Cells basedate = Range("B3").Value Set J = Range("B3").Cells Serverbase = Range("A2").Value Set C = Range("A2").Cells Servercompare = Range("A3").Value Set G = Range("A3").Cells IGGbase = Range("E2").Value Set L = Range("E2").Cells IGGcompare = Range("E3").Value Set K = Range("E3").Cells loops = Range("F2").Value Set T = Range("F2").Cells For Each C In Worksheets("Sheet1").Range("A2:A22").Cells While Serverbase = Servercompare And IGGbase <> IGGcompare If basedate >= start And basedate <= enddate Then loops = loops + 1 Set C = C.Offset(1, 0) Set G = G.Offset(1, 0) Set J = J.Offset(1, 0) Set P = P.Offset(1, 0) Set d = d.Offset(1, 0) Set L = L.Offset(1, 0) Set K = K.Offset(1, 0) Serverbase = C Servercompare = G basedate = J enddate = P start = d IGGbase = L IGGcompare = K T = loops End If If Serverbase <> Servercompare Then Set C = C.Offest(1, 0) Set G = G.Offset(1, 0) Set J = J.Offset(1, 0) Set P = P.Offset(1, 0) Set d = d.Offset(1, 0) Set L = L.Offset(1, 0) Set K = K.Offset(1, 0) End If Wend Next End Sub
D'avance désolé si mon code vous fait sauter au plafond, et un grand merci à ceux qui tenteront de m'aider, à très vite pour échanger, bonne journée ;)