Bonjour !
Voici l'excel sur lequel je travaille :
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 :
J'espère avoir été clair et je vous remercie du temps que vous passerez sur mon problème.
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
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 !
Partager