Bonsoir à tous,
J'ai dans une feuille 1, un tableau dont la colonne numéro 17 et 18 contiennent des numéro de semaine : 23, 34, 51 .....
La colonne 17 est la colonne (numéro de la semaine de la création du rapport) et la colonne 18 quant à elle est la colonne de (rle numéro de la semaine de la réception de la signature du rapport).
Je veux à partir de ces deux colonnes créer un tableau de trois colonnes dont la première est le numéro de semaine, la deuxième nombre de rapport crées dans cette semaine, et la troisième colonne est le nombre de rapport signés dans cette semaine.
Exemple :
Feuille 1
rapports|semaine de création| semaine de signature
rapp1 | 12 | 13|
rapp2 | 14 | 15|
rapp3 | 12 | 12 |
rapp4 | 15 | 16|
Je voudrais à partir du tableau de la feuille 1, créer un tableau dans la feuille 2 representant le résultat suivant :
semaine|rapports crées|rapport signés
12 | 2 | 1
13 | 0 | 1
14 | 1 | 0
15 | 1 | 1
16 | 0 | 1
Pourriez-vous, s'il vous plait me dire comment faire ?
Le souci c'est que, je ne veux pas utiliser la formule de NB.SI car le tableau est dynamique et à chaque fois augemente de ligne.
En cherchant sur le forum, j'ai pensé à un truc de ce genre, mais je sais pas du tout coder en VBA, c'est juste de bricolage :
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
20
21
22
23
24
25
26
27
28
29 Sub Calcul_occurence() Dim FL1 As Worksheet, Cell As Range, NoCol As Integer Dim NoLig As Long, DerLig As Long, Var As Variant Dim Indice As Long Dim occ As Integer occ=0 Set FL1 = Worksheets("Feuil1") Set FL2 = Worksheets("Feuil2") DerLig = Split(FL1.UsedRange.Address, "$")(4) NoCol = 17 // c'est le numéro de la colonne de semaine de création de rapport For NoLig = 1 To DerLig For i = 4 To 56 // c'est le début de la ligne d'un tableau que j'ai dessiné dans la feuille 2, mais comment indiquer que je fais le remplissage dans la feuille 2;56 car il n'y a que 53 semaines au max dans un an? For j = 3 To 5 // c'est la première colonne de mon tabeau de la feuille 2, c'est à dire : rapport crées If FL1.Cells(NoLig, NoCol)==FL1.Cells(NoLig+Indice, NoCol) { occ=occ+1 FL2.item(4, 3)=occ // comment faire pour l'indice de la ligne du tableau de la feuille 2 ici ? } Debug.Print Var Next Set FL1 = Nothing End Sub
Partager