Bonjour, j'ai un problème bien tordu à régler et je vais essayer d'être clair.
J'ai deux tableaux excel et il me faudrait un code qui me permette d'écrire le champ id_date lavage du deuxième tableau dans le champ CONT_DATE_LAVAGE du premier.
SAUF QUE :
--> les codes containers doivent correspondre
--> la date à recopier doit être celle qui est la plus proche du champ CONT_DATE_RETOUR et postérieure à celle-ci.
Un même container à effectivement étai lavé plusieurs fois et il y à dont plusieurs lignes pour chaque containers sur les deux tableaux.
(je ne sait pas si tout ceci vous parait clair)
Pour l'instant j'avais essayé de trier les données sur la feuil8 par id_conteneur et d'injecter ce petit code :
Qui plante excel (pas de message d'erreur, juste un petit "ne répond plus").
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 Dim i As Long, i_max As Long, j As Long, j_max As Long, k As Long, Datel As Date i_max = Feuil6.Cells(2, 1).CurrentRegion.Rows.Count j_max = Feuil8.Cells(2, 1).CurrentRegion.Rows.Count For i = 3 To i_max For j = 2 To j_max If Feuil6.Cells(i, 4) = Feuil8.Cells(j, 5) And Feuil6.Cells(i, 10) <= Feuil8.Cells(j, 2) Then Datel = Feuil8.Cells(j, 2) k = j + 1 If Feuil6.Cells(i, 4) <> Feuil8.Cells(k, 5) Then Feuil6.Cells(i, 16) = Datel Else While Feuil6.Cells(i, 4) = Feuil8.Cells(k, 5) If Feuil6.Cells(i, 10) <= Feuil8.Cells(k, 2) And Datel < Feuil8.Cells(k, 2) Then Datel = Feuil8.Cells(k, 2) End If Wend Feuil6.Cells(i, 16) = Datel j = k End If End If Next j Next i
Je précise que je ne suis pas DU TOUT expert en VBA et que je me doute bien que ce code est écrit (voir même pensé) n'importe comment.
Voila cela fait plusieurs jours que je planche là-dessus et je suis coincé.
Ouvert à toutes suggestions.
Partager