Suppression d'une ligne si date<date aujourd'hui
Fermé
besoin_d'aide
Messages postés
28
Date d'inscription
jeudi 2 mai 2013
Statut
Membre
Dernière intervention
25 juin 2013
-
25 juin 2013 à 11:20
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 25 juin 2013 à 16:06
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 25 juin 2013 à 16:06
A voir également:
- Suppression d'une ligne si date<date aujourd'hui
- Forcer suppression fichier - Guide
- Cette photo n’a pas été prise cette année. trouvez la date, l'heure et avec quel modèle d'appareil photo elle a été prise. ✓ - Forum Graphisme
- Trier par date excel - Guide
- Airpods 3 date de sortie - Guide
2 réponses
besoin_d'aide
Messages postés
28
Date d'inscription
jeudi 2 mai 2013
Statut
Membre
Dernière intervention
25 juin 2013
25 juin 2013 à 11:45
25 juin 2013 à 11:45
rebonjour,
voilà ce que j'ai réussi à faire. Toutefois, il me laisse toujours une ligne qu'il faut supprimer.. dans ce cas, il faut que je reclic à nouveau.. Quelqu'un sait-il pourquoi svp? qu'est ce qui cloche dans mon code?
MERCI INFINIMENT
Sub CDD()
Dim i As Long, drLig As Long
Dim wsBDD As Worksheet
Dim wsEn As Worksheet
Dim maFeuil As Worksheet
Dim Place As Long
Dim Today As Date
Set wsBDD = ThisWorkbook.Worksheets("BDD")
Set wsEn = ThisWorkbook.Worksheets("Entrants")
Set maFeuil = ThisWorkbook.Worksheets("infos")
Today = Now
'On supprime les lignes inutiles (FIN CDD)
wsBDD.Select
Place = 1 + Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row
'MsgBox Oui + Non
Select Case MsgBox("voulez-vous supprimer les CDD arrivés à terme?", vbYesNo, "AFPA ALSACE")
Case vbYes
'Balayer les lignes de ES
For i = 2 To Place
If (wsBDD.Range("AO" & i) <> "") And (wsBDD.Range("AO" & i) <= DateAdd("m", 1, Today)) Then
wsBDD.Range("AO" & i).EntireRow.Delete
End If
Next i
Case vbNo
MsgBox ("l'action a été annulée")
End Select
End Sub
I
voilà ce que j'ai réussi à faire. Toutefois, il me laisse toujours une ligne qu'il faut supprimer.. dans ce cas, il faut que je reclic à nouveau.. Quelqu'un sait-il pourquoi svp? qu'est ce qui cloche dans mon code?
MERCI INFINIMENT
Sub CDD()
Dim i As Long, drLig As Long
Dim wsBDD As Worksheet
Dim wsEn As Worksheet
Dim maFeuil As Worksheet
Dim Place As Long
Dim Today As Date
Set wsBDD = ThisWorkbook.Worksheets("BDD")
Set wsEn = ThisWorkbook.Worksheets("Entrants")
Set maFeuil = ThisWorkbook.Worksheets("infos")
Today = Now
'On supprime les lignes inutiles (FIN CDD)
wsBDD.Select
Place = 1 + Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row
'MsgBox Oui + Non
Select Case MsgBox("voulez-vous supprimer les CDD arrivés à terme?", vbYesNo, "AFPA ALSACE")
Case vbYes
'Balayer les lignes de ES
For i = 2 To Place
If (wsBDD.Range("AO" & i) <> "") And (wsBDD.Range("AO" & i) <= DateAdd("m", 1, Today)) Then
wsBDD.Range("AO" & i).EntireRow.Delete
End If
Next i
Case vbNo
MsgBox ("l'action a été annulée")
End Select
End Sub
I
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 754
Modifié par pijaku le 25/06/2013 à 16:06
Modifié par pijaku le 25/06/2013 à 16:06
Bonjour,
Essaye en "inversant" ta boucle :
remplace :
par :
Cordialement,
Franck P
Essaye en "inversant" ta boucle :
remplace :
For i = 2 To Place If (wsBDD.Range("AO" & i) <> "") And (wsBDD.Range("AO" & i) <= DateAdd("m", 1, Today)) Then wsBDD.Range("AO" & i).EntireRow.Delete End If Next i
par :
For i = Place To 2 Step - 1 If (wsBDD.Range("AO" & i) <> "") And (wsBDD.Range("AO" & i) <= DateAdd("m", 1, Today)) Then wsBDD.Range("AO" & i).EntireRow.Delete End If Next i
Cordialement,
Franck P