Requete VBA
Résolu
chevrotine22
Messages postés
20
Date d'inscription
Statut
Membre
Dernière intervention
-
chevrotine22 Messages postés 20 Date d'inscription Statut Membre Dernière intervention -
chevrotine22 Messages postés 20 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je debut en VBA, et je souhaite effectuer une requête en VBA.
Je dispose d'un tableau d'on la colonne A correspond a des dates en format "m/d/yyyy h:mm", Je voudrais que a l'ouverture de cette requête:
- Si on est lundi ca supprime toute les lignes correspondant a d'autre jours que Samedi Dimanche et Lundi.
- Sinon que ca supprime toutes les lignes des jours autre que le jours en cours et la veille.
Merci d'avance
Je debut en VBA, et je souhaite effectuer une requête en VBA.
Je dispose d'un tableau d'on la colonne A correspond a des dates en format "m/d/yyyy h:mm", Je voudrais que a l'ouverture de cette requête:
- Si on est lundi ca supprime toute les lignes correspondant a d'autre jours que Samedi Dimanche et Lundi.
- Sinon que ca supprime toutes les lignes des jours autre que le jours en cours et la veille.
Merci d'avance
1 réponse
Bonsoir,
Voilà une solution en associant la procédure à un bouton :
Peut-être que quelqu'un d'autre proposera une solution plus efficace
Voilà une solution en associant la procédure à un bouton :
Sub Button1_Click()
Dim i As Integer
i = 2 'Si ta première date est à la ligne 2
If Weekday(Now()) = 2 Then 'Lundi est le 2eme jour selon la norme US
While ActiveSheet.Cells(i, 1).Value <> ""
If Weekday(ActiveSheet.Cells(i, 1)) <> 1 And Weekday(ActiveSheet.Cells(i, 1)) <> 7 And Weekday(ActiveSheet.Cells(i, 1)) <> 2 Then 'On vérifie qu'on n'est ni samedi ni dimanche ni lundi
ActiveSheet.Cells(i, 1).EntireRow.Delete
i = i - 1
End If
i = i + 1
Wend
Else
While ActiveSheet.Cells(i, 1).Value <> ""
If Weekday(ActiveSheet.Cells(i, 1)) <> Weekday(Now()) And Weekday(ActiveSheet.Cells(i, 1)) <> Weekday(Now()) - 1 Then 'On cherche les jours de la semaine qui ne sont ni celui d'aujourd'hui ni celui d'hier
ActiveSheet.Cells(i, 1).EntireRow.Delete
i = i - 1
End If
i = i + 1
Wend
End If
End Sub
Peut-être que quelqu'un d'autre proposera une solution plus efficace
ca marche super bien merci beaucoup