CharlotteG
XLDnaute Nouveau
Bonjour à tous,
Je suis novice en VBA et j'aurais grand besoin de votre aide pour un point qui me bloque depuis quelques jours...
J'ai un tableau avec 2 colonnes : la première un numéro de semaine, et la deuxième l'année correspondante.
La 1ère cellule du tableau se situe en A2.
Le but est de supprimer toutes les lignes du tableau où la date est supérieure à 2 semaines par rapport à aujourd'hui. Par ex, nous sommes en semaine 34 aujourd'hui, il faut supprimer tout ce qui va de la semaine 36 non comprise à la semaine 53 de 2014 + tout ce qui concerne l'année 2015.
J'ai essayé de coder mais sans succès. Voici ce que ça donne :
Sub Tri()
Dim datejour As Date
Dim numsemaine As Integer
Dim annee As Integer
datejour = Format(Now(),"dd-mm-yyyy")
annee = Format(Now(), "yyyy")
With WorksheetFunction
numsemaine = .WeekNum(datejour)
End With
Range("A2").Select
If ActiveCell.Value > numsemaine + 2 And ActiveCell.Offset(0, 1) = annee Then
selection.EntireRow.Delete
ElseIf ActiveCell.Value= 1 And numsemaine < 51 And ActiveCell.Offset(0, 1) > annee Then
selection.EntireRow.Delete
ElseIf ActiveCell.Value = 2 And numsemaine < 52 And ActiveCell.Offset(0, 1) > annee Then
selection.EntireRow.Delete
ElseIf ActiveCell.Value = 3 And numsemaine < 53 And ActiveCell.Offset(0, 1) > annee Then
selection.EntireRow.Delete
ElseIf ActiveCell.Value = 4 And numsemaine < 54 And ActiveCell.Offset(0, 1) > annee Then
selection.EntireRow.Delete
ElseIf ActiveCell.Value > 4 And numsemaine < 52 And ActiveCell.Offset(0, 1) > annee Then
selection.EntireRow.Delete
Else
ActiveCell(1, 0).Select
End If
End Sub
Je vous serais infinement reconnaissante pour votre aide !!! Merci beaucoup d'avance
Je suis novice en VBA et j'aurais grand besoin de votre aide pour un point qui me bloque depuis quelques jours...
J'ai un tableau avec 2 colonnes : la première un numéro de semaine, et la deuxième l'année correspondante.
La 1ère cellule du tableau se situe en A2.
Le but est de supprimer toutes les lignes du tableau où la date est supérieure à 2 semaines par rapport à aujourd'hui. Par ex, nous sommes en semaine 34 aujourd'hui, il faut supprimer tout ce qui va de la semaine 36 non comprise à la semaine 53 de 2014 + tout ce qui concerne l'année 2015.
J'ai essayé de coder mais sans succès. Voici ce que ça donne :
Sub Tri()
Dim datejour As Date
Dim numsemaine As Integer
Dim annee As Integer
datejour = Format(Now(),"dd-mm-yyyy")
annee = Format(Now(), "yyyy")
With WorksheetFunction
numsemaine = .WeekNum(datejour)
End With
Range("A2").Select
If ActiveCell.Value > numsemaine + 2 And ActiveCell.Offset(0, 1) = annee Then
selection.EntireRow.Delete
ElseIf ActiveCell.Value= 1 And numsemaine < 51 And ActiveCell.Offset(0, 1) > annee Then
selection.EntireRow.Delete
ElseIf ActiveCell.Value = 2 And numsemaine < 52 And ActiveCell.Offset(0, 1) > annee Then
selection.EntireRow.Delete
ElseIf ActiveCell.Value = 3 And numsemaine < 53 And ActiveCell.Offset(0, 1) > annee Then
selection.EntireRow.Delete
ElseIf ActiveCell.Value = 4 And numsemaine < 54 And ActiveCell.Offset(0, 1) > annee Then
selection.EntireRow.Delete
ElseIf ActiveCell.Value > 4 And numsemaine < 52 And ActiveCell.Offset(0, 1) > annee Then
selection.EntireRow.Delete
Else
ActiveCell(1, 0).Select
End If
End Sub
Je vous serais infinement reconnaissante pour votre aide !!! Merci beaucoup d'avance