Correction VBA
Résolu/Fermé
chevrotine22
Messages postés
20
Date d'inscription
mardi 10 décembre 2013
Statut
Membre
Dernière intervention
14 septembre 2017
-
11 déc. 2013 à 09:34
chevrotine22 Messages postés 20 Date d'inscription mardi 10 décembre 2013 Statut Membre Dernière intervention 14 septembre 2017 - 18 déc. 2013 à 13:51
chevrotine22 Messages postés 20 Date d'inscription mardi 10 décembre 2013 Statut Membre Dernière intervention 14 septembre 2017 - 18 déc. 2013 à 13:51
A voir également:
- Correction VBA
- Correction orthographe - Guide
- Telecharger clavier français avec correction - Télécharger - Divers Utilitaires
- Mode correction word - Guide
- Vba attendre 1 seconde ✓ - Forum VB / VBA
- Mkdir vba ✓ - Forum VB / VBA
5 réponses
melanie1324
Messages postés
1504
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
154
Modifié par melanie1324 le 11/12/2013 à 10:37
Modifié par melanie1324 le 11/12/2013 à 10:37
Bonjour,
si je comprends ta problématique :
- si on est lundi : il faut garder la veille, l'avant veille et le jour j. Autrement dit si on est lundi 16 décembre, ne doit plus rester que le samedi 14 décembre, dimanche 15 décembre et le 16 décembre.
- Sinon, on garde le jour + la veille.
Voici comment modifier ton code :
si je comprends ta problématique :
- si on est lundi : il faut garder la veille, l'avant veille et le jour j. Autrement dit si on est lundi 16 décembre, ne doit plus rester que le samedi 14 décembre, dimanche 15 décembre et le 16 décembre.
- Sinon, on garde le jour + la veille.
Voici comment modifier ton code :
sub jours Dim i As Integer i = 2 'Si ta première date est à la ligne 2 do while cells(i,1)<>"" jourcell = day(cells(i,1)) & "/" & month(cells(i,1)) & "/" & year(cells(i,1)) jourcell = format(jourcell, "dd/mm/yyyy") If Day(Date) = 2 Then ' si le jour de la date du jour est un lundi If jourcell <>Format(Date - 2, "dd/mm/yyyy") Or jourcell <> Format(Date - 1, "dd/mm/yyyy") Or b <> Format(Date , "dd/mm/yyyy") Then ' si la date de la cellule est différente de l'avant veille, de la veille ou du jour j alors ActiveSheet.Cells(i, 1).EntireRow.Delete End If Else If jourcell <> Format(Date - 1, "dd/mm/yyyy") Or b <> Format(Date , "dd/mm/yyyy") Then ' si on n'est pas lundi, si la date de la cellule est différente de de la veille ou du jour j alors ActiveSheet.Cells(i, 1).EntireRow.Delete End If end if i=i+1 loop end sub
Gyrus
Messages postés
3334
Date d'inscription
samedi 20 juillet 2013
Statut
Membre
Dernière intervention
9 décembre 2016
524
11 déc. 2013 à 10:34
11 déc. 2013 à 10:34
Bonjour,
A tester
A+
A tester
Sub Test()
With ThisWorkbook.ActiveSheet
If Weekday(Date) = 2 Then 'Lundi est le 2eme jour selon la norme US
SupprimerLigne Date - 2, Date
Else
SupprimerLigne Date - 1, Date
End If
End With
End Sub
Sub SupprimerLigne(LimiteB As Date, LimiteH As Date)
Dim Ligne As Long
With ThisWorkbook.ActiveSheet
For Ligne = .Range("A" & Rows.Count).End(xlUp).Row To 2 Step -1
If .Cells(Ligne, 1) < LimiteB Or .Cells(Ligne, 1) > LimiteH Then .Rows(Ligne).Delete
Next Ligne
End With
End Sub
A+
chevrotine22
Messages postés
20
Date d'inscription
mardi 10 décembre 2013
Statut
Membre
Dernière intervention
14 septembre 2017
11 déc. 2013 à 12:08
11 déc. 2013 à 12:08
Bonjour,
Gyrus ta solution est presque bonne, juste ca supprime aussi les lignes de la journée en cours
merci
Gyrus ta solution est presque bonne, juste ca supprime aussi les lignes de la journée en cours
merci
Gyrus
Messages postés
3334
Date d'inscription
samedi 20 juillet 2013
Statut
Membre
Dernière intervention
9 décembre 2016
524
11 déc. 2013 à 13:15
11 déc. 2013 à 13:15
C'est très certainement parce que tes dates intègrent également les heures.
Essaie avec
A+
Essaie avec
If Int(.Cells(Ligne, 1)) < LimiteB Or Int(.Cells(Ligne, 1)) > LimiteH Then .Rows(Ligne).Delete
A+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
chevrotine22
Messages postés
20
Date d'inscription
mardi 10 décembre 2013
Statut
Membre
Dernière intervention
14 septembre 2017
18 déc. 2013 à 13:51
18 déc. 2013 à 13:51
ca marche parfaitement merci