VBA - Excel : Suppression onglet suivant date

Résolu
bthenault Messages postés 58 Statut Membre -  
bthenault Messages postés 58 Statut Membre -
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

1 réponse

  1. melanie1324 Messages postés 1561 Statut Membre 156
     
    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
    1. melanie1324 Messages postés 1561 Statut Membre 156
       
      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
    2. bthenault Messages postés 58 Statut Membre 1
       
      "or" c'est possible??? j'y crois pas :) trop bien Merci !!!
      0