Bonjour,
Je galère depuis presque un jour sur une macro pourtant pas très compliquée. J'aurais donc bien besoin de votre aide...
En fait je dois supprimer des lignes d'un tableau EXCEL, selon deux conditions. grosso modo j'ai une colonne intitulée ORDER DATE, une autre REQUEST DATE. Pour chaque ligne :
-si la différence entre ces deux dates est supérieure à 3, je supprime les lignes pour lesquelles la REQUEST DATE moins la date d'aujourd'hui donne un résultat supérieur à deux. (ce qui revient à ne garder que les request date égales à demain ou après demain)
-si la différence entre l'order date et la request date est inférieure ou égale à 3, je supprime les lignes pour lesquelles la différence entre l'order date et aujourd'hui est inférieure ou égale à 1.
J'espère m'être exprimé clairement. Voilà ce que j'ai codé, et qui ne marche pas (le programme ne supprime pas toutes les lignes remplissant ces critères) :
(la colonne cinq correspond aux order date et la sept aux request date)
Sub xxx()
Dim diff As Long
For i = 2 To Worksheets(1).UsedRange.Rows.Count
diff = DateDiff("d", Cells(i, 7).Value, Cells(i, 5).Value)
Cells(i, 15).Value = diff
If diff <= -3 And DateDiff("d", Cells(i, 7).Value, Now) < -2 Then
Rows(i).Delete
Else:
If DateDiff("d", Cells(i, 5).Value, Now) < 1 Then
Rows(i).Delete
End If
End If
Next i
End Sub
Ce programme est surement super mauvais et j'espère pouvoir compter sur votre aide.
Merci d'avance
Je galère depuis presque un jour sur une macro pourtant pas très compliquée. J'aurais donc bien besoin de votre aide...
En fait je dois supprimer des lignes d'un tableau EXCEL, selon deux conditions. grosso modo j'ai une colonne intitulée ORDER DATE, une autre REQUEST DATE. Pour chaque ligne :
-si la différence entre ces deux dates est supérieure à 3, je supprime les lignes pour lesquelles la REQUEST DATE moins la date d'aujourd'hui donne un résultat supérieur à deux. (ce qui revient à ne garder que les request date égales à demain ou après demain)
-si la différence entre l'order date et la request date est inférieure ou égale à 3, je supprime les lignes pour lesquelles la différence entre l'order date et aujourd'hui est inférieure ou égale à 1.
J'espère m'être exprimé clairement. Voilà ce que j'ai codé, et qui ne marche pas (le programme ne supprime pas toutes les lignes remplissant ces critères) :
(la colonne cinq correspond aux order date et la sept aux request date)
Sub xxx()
Dim diff As Long
For i = 2 To Worksheets(1).UsedRange.Rows.Count
diff = DateDiff("d", Cells(i, 7).Value, Cells(i, 5).Value)
Cells(i, 15).Value = diff
If diff <= -3 And DateDiff("d", Cells(i, 7).Value, Now) < -2 Then
Rows(i).Delete
Else:
If DateDiff("d", Cells(i, 5).Value, Now) < 1 Then
Rows(i).Delete
End If
End If
Next i
End Sub
Ce programme est surement super mauvais et j'espère pouvoir compter sur votre aide.
Merci d'avance