Cela fait un bon bout de temps que je n'ai pas eu besoin d'aide mais
cette fois-ci je ne m'en sors pas.
J'ai un fichier avec de nombreuses dates (la même date est aussi
utilisée plusieurs fois) et je souhaite en extraire une série. J'ai donc
réalisé une page d'accueil ou je note une date Début et une date Fin de
manière à extraire toutes les dates entre les deux (Début et Fin incluses).
J'utilise le code suivant :
'Recherche et supprime les valeurs inférieures
n = Columns(4).Find(What:=Début, After:=Range("D6"),
LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
False, SearchFormat:=False).Row
Rows("6:" & n - 1).Delete
Tout fonctionne de manière parfaite lorsque Début n'est pas la première
date du Fichier. Par exemple, Début est le 22/06 et il y a 16 fois cette
date. S'il y a dans le fichier une date inférieure au 22/06, j'ai bien
les 16 lignes. Si, en revanche, le 22/06 est la première date du
fichier, je ne récupère que 15 lignes.
Merci également pour ton idée. Je vais tester tout cela.
Julie
Péhemme a écrit :
Pardonnez-moi de m'immiscer. Moi j'aime bien les filtres élaborés. Si l'idée est de copier sur la feuille Copie les informations comprises entre la date Début incluse et la date fin incluse, si cela peut aider, je me permets de proposer la macro suivante. Au préalable, il faut modifier les formules de Envoi!B14 = SI(B13="";"";TEXTE(DROITE(B13;11);"jj/mm/aaaa")) en : =SI(B13="";"";TEXTE(DROITE(B13;10);"jj/mm/aaaa")) Pareil pour D14 de la feuille Envoi. J'utilise ces 2 informations pour alimenter mes critères en D1 et D2 de la feuille Données. Il faut également veiller à ce que la colonne D de la feuille Données soit bien une Date et non pas un String Le reste, merci à Denis qui m'avait bien aidé en 2004 (notamment le coup des "Resize")... Michel
Sub FiltrerEntreDates() '=================================================== > 'Pour apurement de la Base de Données et mise en * 'archives des dossiers clos selon critères de dates * '=================================================== > Dim Sh1 As Worksheet, Sh2 As Worksheet, MaPlage As Range, Dest As Range Dim DateDébut As Long, DateFin As Long, R As Long
Set Sh1 = Worksheets("Données") Set Sh2 = Worksheets("Copie") Set MaPlage = Sh1.Range("a5").CurrentRegion R = Sh2.Range("d65536").End(xlUp).Row + 1 Set Dest = Sh2.Range("a" & R)
Sh1.Range("_FilterDatabase").Resize(Sh1.Range("_FilterDatabase") _ .Rows.Count - 1).Offset(1).SpecialCells(xlCellTypeVisible).Copy Dest
'Si tu veux enlever de tes données les lignes copiées 'Sh1.Range("_FilterDatabase").Resize(Sh1.Range("_FilterDatabase") _ ' .Rows.Count - 1).Offset(1).SpecialCells(xlCellTypeVisible).EntireRow.Delete
MaPlage.AutoFilter
Set Sh1 = Nothing Set Sh2 = Nothing Set MaPlage = Nothing Set Dest = Nothing
End Sub
"JulieH" a écrit dans le message de news:OarEsyI%
Bonjour à toutes et tous,
Cela fait un bon bout de temps que je n'ai pas eu besoin d'aide mais cette fois-ci je ne m'en sors pas.
J'ai un fichier avec de nombreuses dates (la même date est aussi utilisée plusieurs fois) et je souhaite en extraire une série. J'ai donc réalisé une page d'accueil ou je note une date Début et une date Fin de manière à extraire toutes les dates entre les deux (Début et Fin incluses).
J'utilise le code suivant : 'Recherche et supprime les valeurs inférieures n = Columns(4).Find(What:=Début, After:=Range("D6"), LookIn:=xlFormulas, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False, SearchFormat:úlse).Row Rows("6:" & n - 1).Delete
Tout fonctionne de manière parfaite lorsque Début n'est pas la première date du Fichier. Par exemple, Début est le 22/06 et il y a 16 fois cette date. S'il y a dans le fichier une date inférieure au 22/06, j'ai bien les 16 lignes. Si, en revanche, le 22/06 est la première date du fichier, je ne récupère que 15 lignes.
N.B : j'ai le même problème pour la Fin.
Si quelqu'un peut m'aider, merci par avance.
Julie
Bonjour,
Merci également pour ton idée. Je vais tester tout cela.
Julie
Péhemme a écrit :
Pardonnez-moi de m'immiscer.
Moi j'aime bien les filtres élaborés.
Si l'idée est de copier sur la feuille Copie les informations comprises
entre la date Début incluse et la date fin incluse, si cela peut aider,
je me permets de proposer la macro suivante.
Au préalable, il faut modifier les formules de
Envoi!B14 = SI(B13="";"";TEXTE(DROITE(B13;11);"jj/mm/aaaa"))
en : =SI(B13="";"";TEXTE(DROITE(B13;10);"jj/mm/aaaa"))
Pareil pour D14 de la feuille Envoi.
J'utilise ces 2 informations pour alimenter mes critères en D1 et D2 de
la feuille Données.
Il faut également veiller à ce que la colonne D de la feuille Données
soit bien une Date et non pas un String
Le reste, merci à Denis qui m'avait bien aidé en 2004 (notamment le coup
des "Resize")...
Michel
Sub FiltrerEntreDates()
'=================================================== > 'Pour apurement de la Base de Données et mise en *
'archives des dossiers clos selon critères de dates *
'=================================================== > Dim Sh1 As Worksheet, Sh2 As Worksheet, MaPlage As Range, Dest As Range
Dim DateDébut As Long, DateFin As Long, R As Long
Set Sh1 = Worksheets("Données")
Set Sh2 = Worksheets("Copie")
Set MaPlage = Sh1.Range("a5").CurrentRegion
R = Sh2.Range("d65536").End(xlUp).Row + 1
Set Dest = Sh2.Range("a" & R)
Sh1.Range("_FilterDatabase").Resize(Sh1.Range("_FilterDatabase") _
.Rows.Count - 1).Offset(1).SpecialCells(xlCellTypeVisible).Copy Dest
'Si tu veux enlever de tes données les lignes copiées
'Sh1.Range("_FilterDatabase").Resize(Sh1.Range("_FilterDatabase") _
' .Rows.Count -
1).Offset(1).SpecialCells(xlCellTypeVisible).EntireRow.Delete
MaPlage.AutoFilter
Set Sh1 = Nothing
Set Sh2 = Nothing
Set MaPlage = Nothing
Set Dest = Nothing
End Sub
"JulieH" <julieh@discussions.microsoft.com> a écrit dans le message de
news:OarEsyI%23JHA.4944@TK2MSFTNGP02.phx.gbl...
Bonjour à toutes et tous,
Cela fait un bon bout de temps que je n'ai pas eu besoin d'aide mais
cette fois-ci je ne m'en sors pas.
J'ai un fichier avec de nombreuses dates (la même date est aussi
utilisée plusieurs fois) et je souhaite en extraire une série. J'ai donc
réalisé une page d'accueil ou je note une date Début et une date Fin de
manière à extraire toutes les dates entre les deux (Début et Fin
incluses).
J'utilise le code suivant :
'Recherche et supprime les valeurs inférieures
n = Columns(4).Find(What:=Début, After:=Range("D6"),
LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
False, SearchFormat:úlse).Row
Rows("6:" & n - 1).Delete
Tout fonctionne de manière parfaite lorsque Début n'est pas la première
date du Fichier. Par exemple, Début est le 22/06 et il y a 16 fois cette
date. S'il y a dans le fichier une date inférieure au 22/06, j'ai bien
les 16 lignes. Si, en revanche, le 22/06 est la première date du
fichier, je ne récupère que 15 lignes.
Merci également pour ton idée. Je vais tester tout cela.
Julie
Péhemme a écrit :
Pardonnez-moi de m'immiscer. Moi j'aime bien les filtres élaborés. Si l'idée est de copier sur la feuille Copie les informations comprises entre la date Début incluse et la date fin incluse, si cela peut aider, je me permets de proposer la macro suivante. Au préalable, il faut modifier les formules de Envoi!B14 = SI(B13="";"";TEXTE(DROITE(B13;11);"jj/mm/aaaa")) en : =SI(B13="";"";TEXTE(DROITE(B13;10);"jj/mm/aaaa")) Pareil pour D14 de la feuille Envoi. J'utilise ces 2 informations pour alimenter mes critères en D1 et D2 de la feuille Données. Il faut également veiller à ce que la colonne D de la feuille Données soit bien une Date et non pas un String Le reste, merci à Denis qui m'avait bien aidé en 2004 (notamment le coup des "Resize")... Michel
Sub FiltrerEntreDates() '=================================================== > 'Pour apurement de la Base de Données et mise en * 'archives des dossiers clos selon critères de dates * '=================================================== > Dim Sh1 As Worksheet, Sh2 As Worksheet, MaPlage As Range, Dest As Range Dim DateDébut As Long, DateFin As Long, R As Long
Set Sh1 = Worksheets("Données") Set Sh2 = Worksheets("Copie") Set MaPlage = Sh1.Range("a5").CurrentRegion R = Sh2.Range("d65536").End(xlUp).Row + 1 Set Dest = Sh2.Range("a" & R)
Sh1.Range("_FilterDatabase").Resize(Sh1.Range("_FilterDatabase") _ .Rows.Count - 1).Offset(1).SpecialCells(xlCellTypeVisible).Copy Dest
'Si tu veux enlever de tes données les lignes copiées 'Sh1.Range("_FilterDatabase").Resize(Sh1.Range("_FilterDatabase") _ ' .Rows.Count - 1).Offset(1).SpecialCells(xlCellTypeVisible).EntireRow.Delete
MaPlage.AutoFilter
Set Sh1 = Nothing Set Sh2 = Nothing Set MaPlage = Nothing Set Dest = Nothing
End Sub
"JulieH" a écrit dans le message de news:OarEsyI%
Bonjour à toutes et tous,
Cela fait un bon bout de temps que je n'ai pas eu besoin d'aide mais cette fois-ci je ne m'en sors pas.
J'ai un fichier avec de nombreuses dates (la même date est aussi utilisée plusieurs fois) et je souhaite en extraire une série. J'ai donc réalisé une page d'accueil ou je note une date Début et une date Fin de manière à extraire toutes les dates entre les deux (Début et Fin incluses).
J'utilise le code suivant : 'Recherche et supprime les valeurs inférieures n = Columns(4).Find(What:=Début, After:=Range("D6"), LookIn:=xlFormulas, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False, SearchFormat:úlse).Row Rows("6:" & n - 1).Delete
Tout fonctionne de manière parfaite lorsque Début n'est pas la première date du Fichier. Par exemple, Début est le 22/06 et il y a 16 fois cette date. S'il y a dans le fichier une date inférieure au 22/06, j'ai bien les 16 lignes. Si, en revanche, le 22/06 est la première date du fichier, je ne récupère que 15 lignes.