Question technique pour vous... Dans la macro qui suit, Excel doit éliminer
les lignes dont la date est antérieure à 2003..... La macro ne fronctionne
que partiellement...... i.e. elle n'élimine que quelques cellules (lignes)....
J'ai essayé d'écrire 1999 sur environ 10 lignes et excel n'en élimine que
quelques uns..... Puis je n'en écris que trois, Excel en élimine deux.....
Sauriez-vous pourquoi Excel en saute de temps en temps???? Le format des
cellules est "général".
Voici la macro:
Sub EliminerDate()
Dim cell As Range
ActiveWindow.DisplayZeros = True
derli = Cells(Rows.Count, "V").End(xlUp).Row
For Each cell In Range("V1:V" & derli)
If IsEmpty(cell) Or Trim(cell.Value) < 2003 Then
cell.EntireRow.Delete
End If
Next cell
End Sub
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
tiah
Hello !
Admettons qu'il est à la ligne 4 la prochaine sera la 5 si c'est la date que tu veux, il supprimera la ligne 4 La ligne 5 deviendra la 4, puisqu'elle remonte et lui continuera avec la ligne 5 (qui était anciennement la 6)
il a donc sauté une ligne avec cette procédure.
faudrait peut-être faire un FOR avec un i=1 to ... et quand il supprime la ligne, tu lui fais un i=i-1 pour qu'il refasse la même ligne
Hello !
Admettons qu'il est à la ligne 4
la prochaine sera la 5
si c'est la date que tu veux, il supprimera la ligne 4
La ligne 5 deviendra la 4, puisqu'elle remonte
et lui continuera avec la ligne 5 (qui était anciennement la 6)
il a donc sauté une ligne avec cette procédure.
faudrait peut-être faire un FOR avec un i=1 to ...
et quand il supprime la ligne, tu lui fais un i=i-1
pour qu'il refasse la même ligne
Admettons qu'il est à la ligne 4 la prochaine sera la 5 si c'est la date que tu veux, il supprimera la ligne 4 La ligne 5 deviendra la 4, puisqu'elle remonte et lui continuera avec la ligne 5 (qui était anciennement la 6)
il a donc sauté une ligne avec cette procédure.
faudrait peut-être faire un FOR avec un i=1 to ... et quand il supprime la ligne, tu lui fais un i=i-1 pour qu'il refasse la même ligne
PMO
Bonjour,
Essayez le code ci-dessous
'****************** Sub PMO_EliminerDate() Dim derli& Dim var Dim i& ActiveWindow.DisplayZeros = True derli = Cells(Rows.Count, "V").End(xlUp).Row var = Range("V1:V" & derli) For i& = derli To 1 Step -1 If IsDate(var(i&, 1)) And _ var(i&, 1) < DateValue("1/1/2003") _ Then Rows(i&).Delete Next i& End Sub '******************
Cordialement. -- PMO Patrick Morange
Bonjour à tous,
Question technique pour vous... Dans la macro qui suit, Excel doit éliminer les lignes dont la date est antérieure à 2003..... La macro ne fronctionne que partiellement...... i.e. elle n'élimine que quelques cellules (lignes)....
J'ai essayé d'écrire 1999 sur environ 10 lignes et excel n'en élimine que quelques uns..... Puis je n'en écris que trois, Excel en élimine deux..... Sauriez-vous pourquoi Excel en saute de temps en temps???? Le format des cellules est "général".
Voici la macro:
Sub EliminerDate() Dim cell As Range ActiveWindow.DisplayZeros = True derli = Cells(Rows.Count, "V").End(xlUp).Row For Each cell In Range("V1:V" & derli)
If IsEmpty(cell) Or Trim(cell.Value) < 2003 Then cell.EntireRow.Delete End If Next cell End Sub
Merci pour votre temps
Denys
Bonjour,
Essayez le code ci-dessous
'******************
Sub PMO_EliminerDate()
Dim derli&
Dim var
Dim i&
ActiveWindow.DisplayZeros = True
derli = Cells(Rows.Count, "V").End(xlUp).Row
var = Range("V1:V" & derli)
For i& = derli To 1 Step -1
If IsDate(var(i&, 1)) And _
var(i&, 1) < DateValue("1/1/2003") _
Then Rows(i&).Delete
Next i&
End Sub
'******************
Cordialement.
--
PMO
Patrick Morange
Bonjour à tous,
Question technique pour vous... Dans la macro qui suit, Excel doit éliminer
les lignes dont la date est antérieure à 2003..... La macro ne fronctionne
que partiellement...... i.e. elle n'élimine que quelques cellules (lignes)....
J'ai essayé d'écrire 1999 sur environ 10 lignes et excel n'en élimine que
quelques uns..... Puis je n'en écris que trois, Excel en élimine deux.....
Sauriez-vous pourquoi Excel en saute de temps en temps???? Le format des
cellules est "général".
Voici la macro:
Sub EliminerDate()
Dim cell As Range
ActiveWindow.DisplayZeros = True
derli = Cells(Rows.Count, "V").End(xlUp).Row
For Each cell In Range("V1:V" & derli)
If IsEmpty(cell) Or Trim(cell.Value) < 2003 Then
cell.EntireRow.Delete
End If
Next cell
End Sub
'****************** Sub PMO_EliminerDate() Dim derli& Dim var Dim i& ActiveWindow.DisplayZeros = True derli = Cells(Rows.Count, "V").End(xlUp).Row var = Range("V1:V" & derli) For i& = derli To 1 Step -1 If IsDate(var(i&, 1)) And _ var(i&, 1) < DateValue("1/1/2003") _ Then Rows(i&).Delete Next i& End Sub '******************
Cordialement. -- PMO Patrick Morange
Bonjour à tous,
Question technique pour vous... Dans la macro qui suit, Excel doit éliminer les lignes dont la date est antérieure à 2003..... La macro ne fronctionne que partiellement...... i.e. elle n'élimine que quelques cellules (lignes)....
J'ai essayé d'écrire 1999 sur environ 10 lignes et excel n'en élimine que quelques uns..... Puis je n'en écris que trois, Excel en élimine deux..... Sauriez-vous pourquoi Excel en saute de temps en temps???? Le format des cellules est "général".
Voici la macro:
Sub EliminerDate() Dim cell As Range ActiveWindow.DisplayZeros = True derli = Cells(Rows.Count, "V").End(xlUp).Row For Each cell In Range("V1:V" & derli)
If IsEmpty(cell) Or Trim(cell.Value) < 2003 Then cell.EntireRow.Delete End If Next cell End Sub
Merci pour votre temps
Denys
Denys
Bonjour Patrick et tiah,
Merci beaucoup pour vos réponses.... Patrick, ton code n'a pas fonctionné.... et je ne comprend pas pourquoi... Peut-être est-ce dû au format de la cellule...
Mais merci beaucoup, j'avance avec vos idées...
Bonjour à tous,
Question technique pour vous... Dans la macro qui suit, Excel doit éliminer les lignes dont la date est antérieure à 2003..... La macro ne fronctionne que partiellement...... i.e. elle n'élimine que quelques cellules (lignes)....
J'ai essayé d'écrire 1999 sur environ 10 lignes et excel n'en élimine que quelques uns..... Puis je n'en écris que trois, Excel en élimine deux..... Sauriez-vous pourquoi Excel en saute de temps en temps???? Le format des cellules est "général".
Voici la macro:
Sub EliminerDate() Dim cell As Range ActiveWindow.DisplayZeros = True derli = Cells(Rows.Count, "V").End(xlUp).Row For Each cell In Range("V1:V" & derli)
If IsEmpty(cell) Or Trim(cell.Value) < 2003 Then cell.EntireRow.Delete End If Next cell End Sub
Merci pour votre temps
Denys
Bonjour Patrick et tiah,
Merci beaucoup pour vos réponses.... Patrick, ton code n'a pas
fonctionné.... et je ne comprend pas pourquoi... Peut-être est-ce dû au
format de la cellule...
Mais merci beaucoup, j'avance avec vos idées...
Bonjour à tous,
Question technique pour vous... Dans la macro qui suit, Excel doit éliminer
les lignes dont la date est antérieure à 2003..... La macro ne fronctionne
que partiellement...... i.e. elle n'élimine que quelques cellules (lignes)....
J'ai essayé d'écrire 1999 sur environ 10 lignes et excel n'en élimine que
quelques uns..... Puis je n'en écris que trois, Excel en élimine deux.....
Sauriez-vous pourquoi Excel en saute de temps en temps???? Le format des
cellules est "général".
Voici la macro:
Sub EliminerDate()
Dim cell As Range
ActiveWindow.DisplayZeros = True
derli = Cells(Rows.Count, "V").End(xlUp).Row
For Each cell In Range("V1:V" & derli)
If IsEmpty(cell) Or Trim(cell.Value) < 2003 Then
cell.EntireRow.Delete
End If
Next cell
End Sub
Merci beaucoup pour vos réponses.... Patrick, ton code n'a pas fonctionné.... et je ne comprend pas pourquoi... Peut-être est-ce dû au format de la cellule...
Mais merci beaucoup, j'avance avec vos idées...
Bonjour à tous,
Question technique pour vous... Dans la macro qui suit, Excel doit éliminer les lignes dont la date est antérieure à 2003..... La macro ne fronctionne que partiellement...... i.e. elle n'élimine que quelques cellules (lignes)....
J'ai essayé d'écrire 1999 sur environ 10 lignes et excel n'en élimine que quelques uns..... Puis je n'en écris que trois, Excel en élimine deux..... Sauriez-vous pourquoi Excel en saute de temps en temps???? Le format des cellules est "général".
Voici la macro:
Sub EliminerDate() Dim cell As Range ActiveWindow.DisplayZeros = True derli = Cells(Rows.Count, "V").End(xlUp).Row For Each cell In Range("V1:V" & derli)
If IsEmpty(cell) Or Trim(cell.Value) < 2003 Then cell.EntireRow.Delete End If Next cell End Sub
Merci pour votre temps
Denys
Denys
Rebonjour,
Pour ceux que ça pourrait intéresser..... J'ai repris une macro qui m'avait été proposée par Denis Michon, et que j'ai adapté à mes nouveaux besoins...
Merci encore à Patrick pour ta macro qui me sera sûrement utile dans le futur...
Denys
Sub EliminerDate() With ActiveSheet Application.ScreenUpdating = False With .Range("V:V") .AutoFilter Field:=1, Criteria1:="<2003" .Range("_FilterDatabase").Offset(1).SpecialCells(xlCellTypeVisible) _ .EntireRow.Delete (xlUp) .AutoFilter End With End With End Sub
Rebonjour,
Pour ceux que ça pourrait intéresser..... J'ai repris une macro qui m'avait
été proposée par Denis Michon, et que j'ai adapté à mes nouveaux besoins...
Merci encore à Patrick pour ta macro qui me sera sûrement utile dans le
futur...
Denys
Sub EliminerDate()
With ActiveSheet
Application.ScreenUpdating = False
With .Range("V:V")
.AutoFilter Field:=1, Criteria1:="<2003"
.Range("_FilterDatabase").Offset(1).SpecialCells(xlCellTypeVisible) _
.EntireRow.Delete (xlUp)
.AutoFilter
End With
End With
End Sub
Pour ceux que ça pourrait intéresser..... J'ai repris une macro qui m'avait été proposée par Denis Michon, et que j'ai adapté à mes nouveaux besoins...
Merci encore à Patrick pour ta macro qui me sera sûrement utile dans le futur...
Denys
Sub EliminerDate() With ActiveSheet Application.ScreenUpdating = False With .Range("V:V") .AutoFilter Field:=1, Criteria1:="<2003" .Range("_FilterDatabase").Offset(1).SpecialCells(xlCellTypeVisible) _ .EntireRow.Delete (xlUp) .AutoFilter End With End With End Sub