VBA - Excel : Suppression onglet suivant date

Résolu
bthenault Messages postés 55 Date d'inscription   Statut Membre Dernière intervention   -  
bthenault Messages postés 55 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Ci-dessous la macro que j'avais créé (à l'éopque, novice...) avec l'aide de différent forumeur.
Je ne retrouve pas mes papiers, j'aimerai la simplifier.
J'explique :
- je dois supprimer les onglets pour lesquels la cellule G3 (qui contient une date) est supérieur à 8 jours, mais n'est ni un lundi, ne le dernier jour du mois

Application.DisplayAlerts = False
For Each Sheet In Workbooks("1er Trimestre 2011.xls").Worksheets
If Sheet.Range("G3") < Date - 8 Then
If Not Weekday(Sheet.Range("G3")) = 2 Then
If Not Sheet.Range("G3") = DateSerial(2011, 1 + 1, 0) Then
If Not Sheet.Range("G3") = DateSerial(2011, 2 + 1, 0) Then
If Not Sheet.Range("G3") = DateSerial(2011, 3 + 1, 0) Then
If Not Sheet.Range("G3") = DateSerial(2011, 4 + 1, 0) Then
If Not Sheet.Range("G3") = DateSerial(2011, 5 + 1, 0) Then
If Not Sheet.Range("G3") = DateSerial(2011, 6 + 1, 0) Then
If Not Sheet.Range("G3") = DateSerial(2011, 7 + 1, 0) Then
If Not Sheet.Range("G3") = DateSerial(2011, 8 + 1, 0) Then
If Not Sheet.Range("G3") = DateSerial(2011, 9 + 1, 0) Then
If Not Sheet.Range("G3") = DateSerial(2011, 10 + 1, 0) Then
If Not Sheet.Range("G3") = DateSerial(2011, 11 + 1, 0) Then
If Not Sheet.Range("G3") = DateSerial(2011, 12 + 1, 0) Then Sheet.Delete
Else
End If
Else
End If
Else
End If
Else
End If
Else
End If
Else
End If
Else
End If
Else
End If
Else
End If
Else
End If
Else
End If
Else
End If
Else
End If


Next Sheet


Application.DisplayAlerts = True


Merci d'avance
A voir également:

1 réponse

melanie1324 Messages postés 1504 Date d'inscription   Statut Membre Dernière intervention   155
 
Bonjour,

je ne sais pas si c'est plus simple mais voici ma proposition :

For Each Sheet In Workbooks("1er Trimestre 2011.xls").Worksheets
If Sheet.Range("G3") < Date - 8 or Weekday(Sheet.Range("G3"), 2) <> 1 Then
cells(60000,1).select
ActiveCell.FormulaR1C1 = "=FIN.MOIS(R3C7,0)"

if Sheet.Range("G3")) = selection then
Sheet.Delete
end if

weekday : donne le numéro de jour d'une date
0
melanie1324 Messages postés 1504 Date d'inscription   Statut Membre Dernière intervention   155
 
je me suis trompée, c'est ce code la :
For Each Sheet In Workbooks("1er Trimestre 2011.xls").Worksheets
If Sheet.Range("G3") < Date - 8 or Weekday(Sheet.Range("G3"), 2) <> 1 Then
cells(60000,1).select
ActiveCell.FormulaR1C1 = "=FIN.MOIS(R3C7,0)"

if Sheet.Range("G3")) <> selection then
Sheet.Delete
end if
0
bthenault Messages postés 55 Date d'inscription   Statut Membre Dernière intervention   1
 
"or" c'est possible??? j'y crois pas :) trop bien Merci !!!
0