Bonjour !

Voici l'excel sur lequel je travaille :

Nom : Capture.PNG
Affichages : 189
Taille : 12,4 Ko

Pour chaque ligne j'aimerai récupérer la ou les date.s correspondant au.x nombre.s sur la ligne. Par exemple pour la dernière ligne j'aimerai récupérer les dates du 13/01/2020, 15/01/2020 et 16/01/2020. Dans le cas où je récupère plusieurs dates il faut que j'utilise DateDiff pour avoir le nombre de jours écoulé entre le début et la fin. Lorsque je n'ai qu'une date, le temps écoulé est par défaut 1 jour. J'ai initialisé un tableau (enfin je crois ^^) pour y rentrer le nombre de jour qu'a pris chaque ligne. Je dois enfin faire une moyenne du nombre de jours ( ceux qui sont dans le tableau). Par exemple, si on considère les 3 premières lignes de mon screen, après dateDiff la 1ère ligne me renvoie 2, la 2ème me renvoie 5 et la 3ème 1. La moyenne pour effectuer ces 3 lignes est donc de 8/3.


Mon code est u peu brouillon car je tourne en rond depuis quelques jours et j'essaye plusieurs choses (comme le activeCell par exemple, j'ai compris il y a peu que ça ne m'étais pas utile finalement)
Voici mon code jusqu'ici :
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
30
31
32
33
34
35
36
 
Sub Test()
 
Dim ligne As Integer, colonne As Integer, varDate1 As Date, varDate2 As Date, tonnage As Integer, i As Integer, cellule As Range
Dim nblignes As Integer, chaine As String, date1 As Date, date2 As Date, tableau(10), j As Integer, jour As Integer, mois As Integer, annee As Integer
 
 
 
nblignes = 0
    For i = 0 To 10
    tableau(i) = Range("A" & i + 1)
    Next i
 
    For i = 1 To 500
        chaine = Cells(i, 1)
 
            If InStr(1, chaine, "0-1m") Then 'Sélectionner les noms de la colonne A avec 0-1m dedans'
 
                For j = 2 To 100
                If Not IsEmpty(Range(j & i)) Then
                Range("A1") = 987
                End If
                Next j
 
            ligne = ActiveCell.Row
            colonne = ActiveCell.Column
            date1 = Cells(2, colonne)
            nblignes = nblignes + 1
            End If
    Next i
 
Range("A1").Value = ligne
Range("B1").Value = colonne
Range("C1").Value = DateSerial(Year(date1), Month(date1), Day(date1))
 
End Sub
J'espère avoir été clair et je vous remercie du temps que vous passerez sur mon problème.

Bien cordialement, un débutant en VBA.

PS : J'ai une erreur au niveau de If Not IsEmpty(Range(j & i)). Erreur '1004' La méthode 'Range' de l'objet '_Global' a échoué. Donc je suppose que ma double boucle par en cacahuète. Merci encore !