Suppression d'une ligne si date<date aujourd'hui
besoin_d'aide
Messages postés
28
Date d'inscription
Statut
Membre
Dernière intervention
-
pijaku Messages postés 12263 Date d'inscription Statut Modérateur Dernière intervention -
pijaku Messages postés 12263 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
je suis novice et j'ai besoin de votre aide svp.
Je bloque au niveau de mon code, je voudrai qu'il balaye la colonne AO, et si la date dans AO est < à aujourd'hui + 1 mois, qu'il me supprime la ligne...
aussi, si la ligne est vide, il ne la supprime pas
Je ne comprends vraiment pas ce qu'il me supprime là, il me supprime tout et rien
Voilà le code que j'ai utilisé :
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) <= 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
merci pour votre aide
Cordialement
je suis novice et j'ai besoin de votre aide svp.
Je bloque au niveau de mon code, je voudrai qu'il balaye la colonne AO, et si la date dans AO est < à aujourd'hui + 1 mois, qu'il me supprime la ligne...
aussi, si la ligne est vide, il ne la supprime pas
Je ne comprends vraiment pas ce qu'il me supprime là, il me supprime tout et rien
Voilà le code que j'ai utilisé :
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) <= 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
merci pour votre aide
Cordialement
A voir également:
- Suppression d'une ligne si date<date aujourd'hui
- Forcer suppression fichier - Guide
- Partager photos en ligne - Guide
- Pas de signal tv aujourd'hui - Guide
- Airpods 3 date de sortie - Guide
- Trier par date excel - Guide
2 réponses
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
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