mathilde88
XLDnaute Nouveau
Bonjour à tous,
Je cherche à sélectionner l'ensemble des données présentent sur une feuille excel (nommé "Extraction Wave") si dans la colonne U figure le numéro de l'une des 6 dernières semaines.
Par exemple, cette semaine nous sommes à la semaine 19 donc je voudrais qu'excel me sélectionne les données pour lesquels est inscrit dans la colonne U le numéro 18, 17, 16, 15, 14, et 13.
(Pour info, le tableau figurant sur la feuille "Extraction Wave contient des colonnes allant de A à W).
Pour cela, j'ai créé la macro suivante :
Sheets("Extraction Wave").Select
Dim sem As Long, C As Range, plag As Range
sem = IsoWeekNumber(Date)
For Each C In [U:U]
If C = sem - 1 Then
If C = sem - 2 Then
If C = sem - 3 Then
If C = sem - 4 Then
If C = sem - 5 Then
If C = sem - 6 Then
If plag Is Nothing Then
Set plag = Rows(C.Row)
Else
Set plag = Union(plag, Rows(C.Row))
End If
End If
End If
End If
End If
End If
End If
Next C
Intersect(plag, [A:W]).Select
Pour cela, il a fallu que je définisse également la fonction IsoweekNumber :
Public Function IsoWeekNumber(ByVal d As Date) As Long
' philben : <!-- m --><a class="postlink" href="http://blog.developpez.com/philben/p11066/vba-access/numero_iso_des_semaines">Page non trouvée | Philben ... s_semaines</a><!-- m -->
Dim wd As Long
wd = Weekday(d, vbMonday)
IsoWeekNumber = Int((d - DateSerial(Year(d - wd + 4), 1, 1) - wd + 11) / 7)
End Function
Malheureusement cela ne fonctionne pas quelqu'un aurait il une piste.
D'avance merci
Cordialement
Mathilde
Je cherche à sélectionner l'ensemble des données présentent sur une feuille excel (nommé "Extraction Wave") si dans la colonne U figure le numéro de l'une des 6 dernières semaines.
Par exemple, cette semaine nous sommes à la semaine 19 donc je voudrais qu'excel me sélectionne les données pour lesquels est inscrit dans la colonne U le numéro 18, 17, 16, 15, 14, et 13.
(Pour info, le tableau figurant sur la feuille "Extraction Wave contient des colonnes allant de A à W).
Pour cela, j'ai créé la macro suivante :
Sheets("Extraction Wave").Select
Dim sem As Long, C As Range, plag As Range
sem = IsoWeekNumber(Date)
For Each C In [U:U]
If C = sem - 1 Then
If C = sem - 2 Then
If C = sem - 3 Then
If C = sem - 4 Then
If C = sem - 5 Then
If C = sem - 6 Then
If plag Is Nothing Then
Set plag = Rows(C.Row)
Else
Set plag = Union(plag, Rows(C.Row))
End If
End If
End If
End If
End If
End If
End If
Next C
Intersect(plag, [A:W]).Select
Pour cela, il a fallu que je définisse également la fonction IsoweekNumber :
Public Function IsoWeekNumber(ByVal d As Date) As Long
' philben : <!-- m --><a class="postlink" href="http://blog.developpez.com/philben/p11066/vba-access/numero_iso_des_semaines">Page non trouvée | Philben ... s_semaines</a><!-- m -->
Dim wd As Long
wd = Weekday(d, vbMonday)
IsoWeekNumber = Int((d - DateSerial(Year(d - wd + 4), 1, 1) - wd + 11) / 7)
End Function
Malheureusement cela ne fonctionne pas quelqu'un aurait il une piste.
D'avance merci
Cordialement
Mathilde