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 -
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
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:
- VBA - Excel : Suppression onglet suivant date
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
- Excel compter cellule couleur sans vba - Guide
1 réponse
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
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
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