Le pb vient de ton code.
Si la 1ere lligne est sélectionnée,
Rows("6:" & n - 1).Delete
supprime la 1ere ligne et la ligne d'entête (n-1=5).
DanielBonjour et merci également,
Je dois avoir un autre problème car dans le fichier Cjoint, si je
change D6 par D5 uniquement, je me retrouve avec la ligne de titres en
moins et toujours pas de 78.
Julie
MichDenis a écrit :Bonjour Julie,
n = Columns(4).Find(What:=Début, After:=Range("D5"),
LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
False, SearchFormat:úlse).Row
Par défaut, la méthode Find débute sa recherche à partir de la
cellule suivante spécifiée
avec le paramètre "After" ou après la première cellule de la plage
sur laquelle est effectue
sa recherche si le paramètre "After" n'est pas défini.
Au lieu de débuter ta recherche en D6, spécifie la cellule D5 et tu
obtiendras ce que tu désires.
(voir l'aide d'Excel sur le sujet)
"JulieH" a écrit dans le message
de groupe de discussion : O3YgviK#
Le voilà :
http://cjoint.com/?gDm3IBGUz2
Julie
Daniel.C a écrit :J'ai du mal à comprendre. Peux-tu mettre un classeur eemple sur
www.cijoint.fr ?
DanielBonjour et merci pour t'intéresser à mon problème,
Voici mon code, j'ai simplifié mais j'espère avoir mis le
nécessaire :
Sub Prépa_Envoi_Essai()
Application.ScreenUpdating = False
'Préparation de la suppression des lignes hors du créneau
de date
Début = CDate([Feuil8].[B14].Value)
Fin = CDate([Feuil8].[D14].Value)
ActiveWorkbook.Sheets("Copie").Activate 'Tri les données pour
les avoir à coup sùr dans l'ordre.
x = [D65000].End(xlUp).Row
Range("A5:Y" & x).Sort Key1:=Range("D6"), Order1:=xlAscending,
Header:= _
xlGuess, OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
'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
'Recherche et supprime les valeurs supérieures
z = Sheets("Copie").Range("D65000").End(xlUp).Row
m = Columns(4).Find(What:=Fin, After:=Range("D6"),
LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
False, SearchFormat:úlse).Row
Range("J1").FormulaR1C1 =
"=COUNTIF(R[5]C[-6]:R[19999]C[-6],RC[-2])"
p = Range("J1").Value
o = m + p
Rows(o & ":" & z + 1).Delete
End Sub
En attendant, j'ai trouvé une solution qui crée une ligne au début
du fichier avec une date inférieure à Début et à la Fin une date
supérieure à Fin. Ce n'est pas l'idéal mais cela fonctionne.
Julie
Daniel.C a écrit :Bonjour.
Poste, s'il te plaît, la totalité de ta boucle.
Cordialement.
DanielBonjour à 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
Le pb vient de ton code.
Si la 1ere lligne est sélectionnée,
Rows("6:" & n - 1).Delete
supprime la 1ere ligne et la ligne d'entête (n-1=5).
Daniel
Bonjour et merci également,
Je dois avoir un autre problème car dans le fichier Cjoint, si je
change D6 par D5 uniquement, je me retrouve avec la ligne de titres en
moins et toujours pas de 78.
Julie
MichDenis a écrit :
Bonjour Julie,
n = Columns(4).Find(What:=Début, After:=Range("D5"),
LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
False, SearchFormat:úlse).Row
Par défaut, la méthode Find débute sa recherche à partir de la
cellule suivante spécifiée
avec le paramètre "After" ou après la première cellule de la plage
sur laquelle est effectue
sa recherche si le paramètre "After" n'est pas défini.
Au lieu de débuter ta recherche en D6, spécifie la cellule D5 et tu
obtiendras ce que tu désires.
(voir l'aide d'Excel sur le sujet)
"JulieH" <julieh@discussions.microsoft.com> a écrit dans le message
de groupe de discussion : O3YgviK#JHA.5092@TK2MSFTNGP03.phx.gbl...
Le voilà :
http://cjoint.com/?gDm3IBGUz2
Julie
Daniel.C a écrit :
J'ai du mal à comprendre. Peux-tu mettre un classeur eemple sur
www.cijoint.fr ?
Daniel
Bonjour et merci pour t'intéresser à mon problème,
Voici mon code, j'ai simplifié mais j'espère avoir mis le
nécessaire :
Sub Prépa_Envoi_Essai()
Application.ScreenUpdating = False
'Préparation de la suppression des lignes hors du créneau
de date
Début = CDate([Feuil8].[B14].Value)
Fin = CDate([Feuil8].[D14].Value)
ActiveWorkbook.Sheets("Copie").Activate 'Tri les données pour
les avoir à coup sùr dans l'ordre.
x = [D65000].End(xlUp).Row
Range("A5:Y" & x).Sort Key1:=Range("D6"), Order1:=xlAscending,
Header:= _
xlGuess, OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
'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
'Recherche et supprime les valeurs supérieures
z = Sheets("Copie").Range("D65000").End(xlUp).Row
m = Columns(4).Find(What:=Fin, After:=Range("D6"),
LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
False, SearchFormat:úlse).Row
Range("J1").FormulaR1C1 =
"=COUNTIF(R[5]C[-6]:R[19999]C[-6],RC[-2])"
p = Range("J1").Value
o = m + p
Rows(o & ":" & z + 1).Delete
End Sub
En attendant, j'ai trouvé une solution qui crée une ligne au début
du fichier avec une date inférieure à Début et à la Fin une date
supérieure à Fin. Ce n'est pas l'idéal mais cela fonctionne.
Julie
Daniel.C a écrit :
Bonjour.
Poste, s'il te plaît, la totalité de ta boucle.
Cordialement.
Daniel
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
Le pb vient de ton code.
Si la 1ere lligne est sélectionnée,
Rows("6:" & n - 1).Delete
supprime la 1ere ligne et la ligne d'entête (n-1=5).
DanielBonjour et merci également,
Je dois avoir un autre problème car dans le fichier Cjoint, si je
change D6 par D5 uniquement, je me retrouve avec la ligne de titres en
moins et toujours pas de 78.
Julie
MichDenis a écrit :Bonjour Julie,
n = Columns(4).Find(What:=Début, After:=Range("D5"),
LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
False, SearchFormat:úlse).Row
Par défaut, la méthode Find débute sa recherche à partir de la
cellule suivante spécifiée
avec le paramètre "After" ou après la première cellule de la plage
sur laquelle est effectue
sa recherche si le paramètre "After" n'est pas défini.
Au lieu de débuter ta recherche en D6, spécifie la cellule D5 et tu
obtiendras ce que tu désires.
(voir l'aide d'Excel sur le sujet)
"JulieH" a écrit dans le message
de groupe de discussion : O3YgviK#
Le voilà :
http://cjoint.com/?gDm3IBGUz2
Julie
Daniel.C a écrit :J'ai du mal à comprendre. Peux-tu mettre un classeur eemple sur
www.cijoint.fr ?
DanielBonjour et merci pour t'intéresser à mon problème,
Voici mon code, j'ai simplifié mais j'espère avoir mis le
nécessaire :
Sub Prépa_Envoi_Essai()
Application.ScreenUpdating = False
'Préparation de la suppression des lignes hors du créneau
de date
Début = CDate([Feuil8].[B14].Value)
Fin = CDate([Feuil8].[D14].Value)
ActiveWorkbook.Sheets("Copie").Activate 'Tri les données pour
les avoir à coup sùr dans l'ordre.
x = [D65000].End(xlUp).Row
Range("A5:Y" & x).Sort Key1:=Range("D6"), Order1:=xlAscending,
Header:= _
xlGuess, OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
'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
'Recherche et supprime les valeurs supérieures
z = Sheets("Copie").Range("D65000").End(xlUp).Row
m = Columns(4).Find(What:=Fin, After:=Range("D6"),
LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
False, SearchFormat:úlse).Row
Range("J1").FormulaR1C1 =
"=COUNTIF(R[5]C[-6]:R[19999]C[-6],RC[-2])"
p = Range("J1").Value
o = m + p
Rows(o & ":" & z + 1).Delete
End Sub
En attendant, j'ai trouvé une solution qui crée une ligne au début
du fichier avec une date inférieure à Début et à la Fin une date
supérieure à Fin. Ce n'est pas l'idéal mais cela fonctionne.
Julie
Daniel.C a écrit :Bonjour.
Poste, s'il te plaît, la totalité de ta boucle.
Cordialement.
DanielBonjour à 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
J'ai du mal à comprendre. Peux-tu mettre un classeur eemple sur
www.cijoint.fr ?
DanielBonjour et merci pour t'intéresser à mon problème,
Voici mon code, j'ai simplifié mais j'espère avoir mis le
nécessaire :
Sub Prépa_Envoi_Essai()
Application.ScreenUpdating = False
'Préparation de la suppression des lignes hors du créneau
de date
Début = CDate([Feuil8].[B14].Value)
Fin = CDate([Feuil8].[D14].Value)
ActiveWorkbook.Sheets("Copie").Activate 'Tri les données pour
les avoir à coup sùr dans l'ordre.
x = [D65000].End(xlUp).Row
Range("A5:Y" & x).Sort Key1:=Range("D6"), Order1:=xlAscending,
Header:= _
xlGuess, OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
'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
'Recherche et supprime les valeurs supérieures
z = Sheets("Copie").Range("D65000").End(xlUp).Row
m = Columns(4).Find(What:=Fin, After:=Range("D6"),
LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
False, SearchFormat:úlse).Row
Range("J1").FormulaR1C1 = "=COUNTIF(R[5]C[-6]:R[19999]C[-6],RC[-2])"
p = Range("J1").Value
o = m + p
Rows(o & ":" & z + 1).Delete
End Sub
En attendant, j'ai trouvé une solution qui crée une ligne au début
du fichier avec une date inférieure à Début et à la Fin une date
supérieure à Fin. Ce n'est pas l'idéal mais cela fonctionne.
Julie
Daniel.C a écrit :Bonjour.
Poste, s'il te plaît, la totalité de ta boucle.
Cordialement.
DanielBonjour à 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
J'ai du mal à comprendre. Peux-tu mettre un classeur eemple sur
www.cijoint.fr ?
Daniel
Bonjour et merci pour t'intéresser à mon problème,
Voici mon code, j'ai simplifié mais j'espère avoir mis le
nécessaire :
Sub Prépa_Envoi_Essai()
Application.ScreenUpdating = False
'Préparation de la suppression des lignes hors du créneau
de date
Début = CDate([Feuil8].[B14].Value)
Fin = CDate([Feuil8].[D14].Value)
ActiveWorkbook.Sheets("Copie").Activate 'Tri les données pour
les avoir à coup sùr dans l'ordre.
x = [D65000].End(xlUp).Row
Range("A5:Y" & x).Sort Key1:=Range("D6"), Order1:=xlAscending,
Header:= _
xlGuess, OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
'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
'Recherche et supprime les valeurs supérieures
z = Sheets("Copie").Range("D65000").End(xlUp).Row
m = Columns(4).Find(What:=Fin, After:=Range("D6"),
LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
False, SearchFormat:úlse).Row
Range("J1").FormulaR1C1 = "=COUNTIF(R[5]C[-6]:R[19999]C[-6],RC[-2])"
p = Range("J1").Value
o = m + p
Rows(o & ":" & z + 1).Delete
End Sub
En attendant, j'ai trouvé une solution qui crée une ligne au début
du fichier avec une date inférieure à Début et à la Fin une date
supérieure à Fin. Ce n'est pas l'idéal mais cela fonctionne.
Julie
Daniel.C a écrit :
Bonjour.
Poste, s'il te plaît, la totalité de ta boucle.
Cordialement.
Daniel
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
J'ai du mal à comprendre. Peux-tu mettre un classeur eemple sur
www.cijoint.fr ?
DanielBonjour et merci pour t'intéresser à mon problème,
Voici mon code, j'ai simplifié mais j'espère avoir mis le
nécessaire :
Sub Prépa_Envoi_Essai()
Application.ScreenUpdating = False
'Préparation de la suppression des lignes hors du créneau
de date
Début = CDate([Feuil8].[B14].Value)
Fin = CDate([Feuil8].[D14].Value)
ActiveWorkbook.Sheets("Copie").Activate 'Tri les données pour
les avoir à coup sùr dans l'ordre.
x = [D65000].End(xlUp).Row
Range("A5:Y" & x).Sort Key1:=Range("D6"), Order1:=xlAscending,
Header:= _
xlGuess, OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
'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
'Recherche et supprime les valeurs supérieures
z = Sheets("Copie").Range("D65000").End(xlUp).Row
m = Columns(4).Find(What:=Fin, After:=Range("D6"),
LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
False, SearchFormat:úlse).Row
Range("J1").FormulaR1C1 = "=COUNTIF(R[5]C[-6]:R[19999]C[-6],RC[-2])"
p = Range("J1").Value
o = m + p
Rows(o & ":" & z + 1).Delete
End Sub
En attendant, j'ai trouvé une solution qui crée une ligne au début
du fichier avec une date inférieure à Début et à la Fin une date
supérieure à Fin. Ce n'est pas l'idéal mais cela fonctionne.
Julie
Daniel.C a écrit :Bonjour.
Poste, s'il te plaît, la totalité de ta boucle.
Cordialement.
DanielBonjour à 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
J'ai répondu spécifiquement à ta question initiale et je t'ai
donné l'explication quant au pourquoi :
| 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.
Je n'ai pas corrigé le reste de ta procédure... mais au besoin en
tenant compte de mon message précédent, tu pourrais utiliser
cette ligne de code pour supprimer la plage de cellules
n = Columns(4).Find(What:=Début, After:=Range("D5"), LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:úlse).Row
Range("D6").Resize(N).Delete
Attention : Si la date recherchée n'existe pas, la méthode Find génère une erreur #91
conséquence, plantage sur la ligne N = ... et évidemment si N n'est pas défini la ligne
de code suivante va générer aussi une erreur !
"MichDenis" a écrit dans le message de groupe de discussion :
#DG66uK#
Bonjour Julie,
n = Columns(4).Find(What:=Début, After:=Range("D5"), LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:úlse).Row
Par défaut, la méthode Find débute sa recherche à partir de la cellule suivante spécifiée
avec le paramètre "After" ou après la première cellule de la plage sur laquelle est
effectue
sa recherche si le paramètre "After" n'est pas défini.
Au lieu de débuter ta recherche en D6, spécifie la cellule D5 et tu obtiendras ce que tu
désires.
(voir l'aide d'Excel sur le sujet)
"JulieH" a écrit dans le message de groupe de
discussion : O3YgviK#
Le voilà :
http://cjoint.com/?gDm3IBGUz2
Julie
Daniel.C a écrit :J'ai du mal à comprendre. Peux-tu mettre un classeur eemple sur
www.cijoint.fr ?
DanielBonjour et merci pour t'intéresser à mon problème,
Voici mon code, j'ai simplifié mais j'espère avoir mis le
nécessaire :
Sub Prépa_Envoi_Essai()
Application.ScreenUpdating = False
'Préparation de la suppression des lignes hors du créneau
de date
Début = CDate([Feuil8].[B14].Value)
Fin = CDate([Feuil8].[D14].Value)
ActiveWorkbook.Sheets("Copie").Activate 'Tri les données pour
les avoir à coup sùr dans l'ordre.
x = [D65000].End(xlUp).Row
Range("A5:Y" & x).Sort Key1:=Range("D6"), Order1:=xlAscending,
Header:= _
xlGuess, OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
'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
'Recherche et supprime les valeurs supérieures
z = Sheets("Copie").Range("D65000").End(xlUp).Row
m = Columns(4).Find(What:=Fin, After:=Range("D6"),
LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
False, SearchFormat:úlse).Row
Range("J1").FormulaR1C1 = "=COUNTIF(R[5]C[-6]:R[19999]C[-6],RC[-2])"
p = Range("J1").Value
o = m + p
Rows(o & ":" & z + 1).Delete
End Sub
En attendant, j'ai trouvé une solution qui crée une ligne au début
du fichier avec une date inférieure à Début et à la Fin une date
supérieure à Fin. Ce n'est pas l'idéal mais cela fonctionne.
Julie
Daniel.C a écrit :Bonjour.
Poste, s'il te plaît, la totalité de ta boucle.
Cordialement.
DanielBonjour à 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
J'ai répondu spécifiquement à ta question initiale et je t'ai
donné l'explication quant au pourquoi :
| 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.
Je n'ai pas corrigé le reste de ta procédure... mais au besoin en
tenant compte de mon message précédent, tu pourrais utiliser
cette ligne de code pour supprimer la plage de cellules
n = Columns(4).Find(What:=Début, After:=Range("D5"), LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:úlse).Row
Range("D6").Resize(N).Delete
Attention : Si la date recherchée n'existe pas, la méthode Find génère une erreur #91
conséquence, plantage sur la ligne N = ... et évidemment si N n'est pas défini la ligne
de code suivante va générer aussi une erreur !
"MichDenis" <michdenis@hotmail.com> a écrit dans le message de groupe de discussion :
#DG66uK#JHA.4560@TK2MSFTNGP05.phx.gbl...
Bonjour Julie,
n = Columns(4).Find(What:=Début, After:=Range("D5"), LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:úlse).Row
Par défaut, la méthode Find débute sa recherche à partir de la cellule suivante spécifiée
avec le paramètre "After" ou après la première cellule de la plage sur laquelle est
effectue
sa recherche si le paramètre "After" n'est pas défini.
Au lieu de débuter ta recherche en D6, spécifie la cellule D5 et tu obtiendras ce que tu
désires.
(voir l'aide d'Excel sur le sujet)
"JulieH" <julieh@discussions.microsoft.com> a écrit dans le message de groupe de
discussion : O3YgviK#JHA.5092@TK2MSFTNGP03.phx.gbl...
Le voilà :
http://cjoint.com/?gDm3IBGUz2
Julie
Daniel.C a écrit :
J'ai du mal à comprendre. Peux-tu mettre un classeur eemple sur
www.cijoint.fr ?
Daniel
Bonjour et merci pour t'intéresser à mon problème,
Voici mon code, j'ai simplifié mais j'espère avoir mis le
nécessaire :
Sub Prépa_Envoi_Essai()
Application.ScreenUpdating = False
'Préparation de la suppression des lignes hors du créneau
de date
Début = CDate([Feuil8].[B14].Value)
Fin = CDate([Feuil8].[D14].Value)
ActiveWorkbook.Sheets("Copie").Activate 'Tri les données pour
les avoir à coup sùr dans l'ordre.
x = [D65000].End(xlUp).Row
Range("A5:Y" & x).Sort Key1:=Range("D6"), Order1:=xlAscending,
Header:= _
xlGuess, OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
'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
'Recherche et supprime les valeurs supérieures
z = Sheets("Copie").Range("D65000").End(xlUp).Row
m = Columns(4).Find(What:=Fin, After:=Range("D6"),
LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
False, SearchFormat:úlse).Row
Range("J1").FormulaR1C1 = "=COUNTIF(R[5]C[-6]:R[19999]C[-6],RC[-2])"
p = Range("J1").Value
o = m + p
Rows(o & ":" & z + 1).Delete
End Sub
En attendant, j'ai trouvé une solution qui crée une ligne au début
du fichier avec une date inférieure à Début et à la Fin une date
supérieure à Fin. Ce n'est pas l'idéal mais cela fonctionne.
Julie
Daniel.C a écrit :
Bonjour.
Poste, s'il te plaît, la totalité de ta boucle.
Cordialement.
Daniel
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
J'ai répondu spécifiquement à ta question initiale et je t'ai
donné l'explication quant au pourquoi :
| 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.
Je n'ai pas corrigé le reste de ta procédure... mais au besoin en
tenant compte de mon message précédent, tu pourrais utiliser
cette ligne de code pour supprimer la plage de cellules
n = Columns(4).Find(What:=Début, After:=Range("D5"), LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:úlse).Row
Range("D6").Resize(N).Delete
Attention : Si la date recherchée n'existe pas, la méthode Find génère une erreur #91
conséquence, plantage sur la ligne N = ... et évidemment si N n'est pas défini la ligne
de code suivante va générer aussi une erreur !
"MichDenis" a écrit dans le message de groupe de discussion :
#DG66uK#
Bonjour Julie,
n = Columns(4).Find(What:=Début, After:=Range("D5"), LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:úlse).Row
Par défaut, la méthode Find débute sa recherche à partir de la cellule suivante spécifiée
avec le paramètre "After" ou après la première cellule de la plage sur laquelle est
effectue
sa recherche si le paramètre "After" n'est pas défini.
Au lieu de débuter ta recherche en D6, spécifie la cellule D5 et tu obtiendras ce que tu
désires.
(voir l'aide d'Excel sur le sujet)
"JulieH" a écrit dans le message de groupe de
discussion : O3YgviK#
Le voilà :
http://cjoint.com/?gDm3IBGUz2
Julie
Daniel.C a écrit :J'ai du mal à comprendre. Peux-tu mettre un classeur eemple sur
www.cijoint.fr ?
DanielBonjour et merci pour t'intéresser à mon problème,
Voici mon code, j'ai simplifié mais j'espère avoir mis le
nécessaire :
Sub Prépa_Envoi_Essai()
Application.ScreenUpdating = False
'Préparation de la suppression des lignes hors du créneau
de date
Début = CDate([Feuil8].[B14].Value)
Fin = CDate([Feuil8].[D14].Value)
ActiveWorkbook.Sheets("Copie").Activate 'Tri les données pour
les avoir à coup sùr dans l'ordre.
x = [D65000].End(xlUp).Row
Range("A5:Y" & x).Sort Key1:=Range("D6"), Order1:=xlAscending,
Header:= _
xlGuess, OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
'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
'Recherche et supprime les valeurs supérieures
z = Sheets("Copie").Range("D65000").End(xlUp).Row
m = Columns(4).Find(What:=Fin, After:=Range("D6"),
LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
False, SearchFormat:úlse).Row
Range("J1").FormulaR1C1 = "=COUNTIF(R[5]C[-6]:R[19999]C[-6],RC[-2])"
p = Range("J1").Value
o = m + p
Rows(o & ":" & z + 1).Delete
End Sub
En attendant, j'ai trouvé une solution qui crée une ligne au début
du fichier avec une date inférieure à Début et à la Fin une date
supérieure à Fin. Ce n'est pas l'idéal mais cela fonctionne.
Julie
Daniel.C a écrit :Bonjour.
Poste, s'il te plaît, la totalité de ta boucle.
Cordialement.
DanielBonjour à 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
J'ai du mal à comprendre. Peux-tu mettre un classeur eemple sur
www.cijoint.fr ?
DanielBonjour et merci pour t'intéresser à mon problème,
Voici mon code, j'ai simplifié mais j'espère avoir mis le
nécessaire :
Sub Prépa_Envoi_Essai()
Application.ScreenUpdating = False
'Préparation de la suppression des lignes hors du créneau
de date
Début = CDate([Feuil8].[B14].Value)
Fin = CDate([Feuil8].[D14].Value)
ActiveWorkbook.Sheets("Copie").Activate 'Tri les données pour
les avoir à coup sùr dans l'ordre.
x = [D65000].End(xlUp).Row
Range("A5:Y" & x).Sort Key1:=Range("D6"), Order1:=xlAscending,
Header:= _
xlGuess, OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
'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
'Recherche et supprime les valeurs supérieures
z = Sheets("Copie").Range("D65000").End(xlUp).Row
m = Columns(4).Find(What:=Fin, After:=Range("D6"),
LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
False, SearchFormat:úlse).Row
Range("J1").FormulaR1C1 = "=COUNTIF(R[5]C[-6]:R[19999]C[-6],RC[-2])"
p = Range("J1").Value
o = m + p
Rows(o & ":" & z + 1).Delete
End Sub
En attendant, j'ai trouvé une solution qui crée une ligne au début
du fichier avec une date inférieure à Début et à la Fin une date
supérieure à Fin. Ce n'est pas l'idéal mais cela fonctionne.
Julie
Daniel.C a écrit :Bonjour.
Poste, s'il te plaît, la totalité de ta boucle.
Cordialement.
DanielBonjour à 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
J'ai du mal à comprendre. Peux-tu mettre un classeur eemple sur
www.cijoint.fr ?
Daniel
Bonjour et merci pour t'intéresser à mon problème,
Voici mon code, j'ai simplifié mais j'espère avoir mis le
nécessaire :
Sub Prépa_Envoi_Essai()
Application.ScreenUpdating = False
'Préparation de la suppression des lignes hors du créneau
de date
Début = CDate([Feuil8].[B14].Value)
Fin = CDate([Feuil8].[D14].Value)
ActiveWorkbook.Sheets("Copie").Activate 'Tri les données pour
les avoir à coup sùr dans l'ordre.
x = [D65000].End(xlUp).Row
Range("A5:Y" & x).Sort Key1:=Range("D6"), Order1:=xlAscending,
Header:= _
xlGuess, OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
'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
'Recherche et supprime les valeurs supérieures
z = Sheets("Copie").Range("D65000").End(xlUp).Row
m = Columns(4).Find(What:=Fin, After:=Range("D6"),
LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
False, SearchFormat:úlse).Row
Range("J1").FormulaR1C1 = "=COUNTIF(R[5]C[-6]:R[19999]C[-6],RC[-2])"
p = Range("J1").Value
o = m + p
Rows(o & ":" & z + 1).Delete
End Sub
En attendant, j'ai trouvé une solution qui crée une ligne au début
du fichier avec une date inférieure à Début et à la Fin une date
supérieure à Fin. Ce n'est pas l'idéal mais cela fonctionne.
Julie
Daniel.C a écrit :
Bonjour.
Poste, s'il te plaît, la totalité de ta boucle.
Cordialement.
Daniel
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
J'ai du mal à comprendre. Peux-tu mettre un classeur eemple sur
www.cijoint.fr ?
DanielBonjour et merci pour t'intéresser à mon problème,
Voici mon code, j'ai simplifié mais j'espère avoir mis le
nécessaire :
Sub Prépa_Envoi_Essai()
Application.ScreenUpdating = False
'Préparation de la suppression des lignes hors du créneau
de date
Début = CDate([Feuil8].[B14].Value)
Fin = CDate([Feuil8].[D14].Value)
ActiveWorkbook.Sheets("Copie").Activate 'Tri les données pour
les avoir à coup sùr dans l'ordre.
x = [D65000].End(xlUp).Row
Range("A5:Y" & x).Sort Key1:=Range("D6"), Order1:=xlAscending,
Header:= _
xlGuess, OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
'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
'Recherche et supprime les valeurs supérieures
z = Sheets("Copie").Range("D65000").End(xlUp).Row
m = Columns(4).Find(What:=Fin, After:=Range("D6"),
LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
False, SearchFormat:úlse).Row
Range("J1").FormulaR1C1 = "=COUNTIF(R[5]C[-6]:R[19999]C[-6],RC[-2])"
p = Range("J1").Value
o = m + p
Rows(o & ":" & z + 1).Delete
End Sub
En attendant, j'ai trouvé une solution qui crée une ligne au début
du fichier avec une date inférieure à Début et à la Fin une date
supérieure à Fin. Ce n'est pas l'idéal mais cela fonctionne.
Julie
Daniel.C a écrit :Bonjour.
Poste, s'il te plaît, la totalité de ta boucle.
Cordialement.
DanielBonjour à 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
Set N = Columns(4).Find(What:=Début, After:=Range("D6"), LookIn:=xlFormulas,
LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious,
MatchCase:= _
False, SearchFormat:úlse)
If Not N Is Nothing Then
Range("D6").Resize(N.Row).EntireRow.Delete
End If
Set N = Columns(4).Find(What:=Début, After:=Range("D6"), LookIn:=xlFormulas,
LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious,
MatchCase:= _
False, SearchFormat:úlse)
If Not N Is Nothing Then
Range("D6").Resize(N.Row).EntireRow.Delete
End If
Set N = Columns(4).Find(What:=Début, After:=Range("D6"), LookIn:=xlFormulas,
LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious,
MatchCase:= _
False, SearchFormat:úlse)
If Not N Is Nothing Then
Range("D6").Resize(N.Row).EntireRow.Delete
End If
salut, Denis.
Ne serait-ce pas plutôt :
Set N = Columns(4).Find(What:=Début, After:=Range("D5"),
LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
False, SearchFormat:úlse)
If Not N Is Nothing Then
Range("D6").Resize(N.Row - 6).EntireRow.Delete
End If
et de même pour les valeurs postérieures ?
DanielSet N = Columns(4).Find(What:=Début, After:=Range("D6"),
LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious,
MatchCase:= _
False, SearchFormat:úlse)
If Not N Is Nothing Then
Range("D6").Resize(N.Row).EntireRow.Delete
End If
salut, Denis.
Ne serait-ce pas plutôt :
Set N = Columns(4).Find(What:=Début, After:=Range("D5"),
LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
False, SearchFormat:úlse)
If Not N Is Nothing Then
Range("D6").Resize(N.Row - 6).EntireRow.Delete
End If
et de même pour les valeurs postérieures ?
Daniel
Set N = Columns(4).Find(What:=Début, After:=Range("D6"),
LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious,
MatchCase:= _
False, SearchFormat:úlse)
If Not N Is Nothing Then
Range("D6").Resize(N.Row).EntireRow.Delete
End If
salut, Denis.
Ne serait-ce pas plutôt :
Set N = Columns(4).Find(What:=Début, After:=Range("D5"),
LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
False, SearchFormat:úlse)
If Not N Is Nothing Then
Range("D6").Resize(N.Row - 6).EntireRow.Delete
End If
et de même pour les valeurs postérieures ?
DanielSet N = Columns(4).Find(What:=Début, After:=Range("D6"),
LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious,
MatchCase:= _
False, SearchFormat:úlse)
If Not N Is Nothing Then
Range("D6").Resize(N.Row).EntireRow.Delete
End If
salut, Denis.
Ne serait-ce pas plutôt :
Set N = Columns(4).Find(What:=Début, After:=Range("D5"),
LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
False, SearchFormat:úlse)
If Not N Is Nothing Then
Range("D6").Resize(N.Row - 6).EntireRow.Delete
End If
et de même pour les valeurs postérieures ?
DanielSet N = Columns(4).Find(What:=Début, After:=Range("D6"),
LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious,
MatchCase:= _
False, SearchFormat:úlse)
If Not N Is Nothing Then
Range("D6").Resize(N.Row).EntireRow.Delete
End If
salut, Denis.
Ne serait-ce pas plutôt :
Set N = Columns(4).Find(What:=Début, After:=Range("D5"),
LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
False, SearchFormat:úlse)
If Not N Is Nothing Then
Range("D6").Resize(N.Row - 6).EntireRow.Delete
End If
et de même pour les valeurs postérieures ?
Daniel
Set N = Columns(4).Find(What:=Début, After:=Range("D6"),
LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious,
MatchCase:= _
False, SearchFormat:úlse)
If Not N Is Nothing Then
Range("D6").Resize(N.Row).EntireRow.Delete
End If
salut, Denis.
Ne serait-ce pas plutôt :
Set N = Columns(4).Find(What:=Début, After:=Range("D5"),
LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
False, SearchFormat:úlse)
If Not N Is Nothing Then
Range("D6").Resize(N.Row - 6).EntireRow.Delete
End If
et de même pour les valeurs postérieures ?
DanielSet N = Columns(4).Find(What:=Début, After:=Range("D6"),
LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious,
MatchCase:= _
False, SearchFormat:úlse)
If Not N Is Nothing Then
Range("D6").Resize(N.Row).EntireRow.Delete
End If
Pourquoi tiens-tu à utiliser la méthode Find, tu peux avoir la même chose
avec la méthode Autofilter :
Ceci supprime les lignes inférieur à la date "Début" Et
ou supérieur à la date "fin"
With Range("A6:A" & Range("A65536").End(xlUp).Row).CurrentRegion
.AutoFilter field:=4, Criteria1:="<" & début * 1, _
Operator:=xlOr, Criteria2:=">" & fin * 1
.SpecialCells(xlCellTypeVisible).EntireRow.Delete
End With
"JulieH" a écrit dans le message de groupe de
discussion : OGHAw8L#
Merci à tous les deux pour votre aide. Je n'y comprends plus rien car
rien ne fonctionne et les deux codes font planter la suppression des
valeurs supérieures.
Je repars sur mon idée initiale (non satisfaisante) en créant par la
macro une date avant Début et 1 autre après Fin. On verra bien ce qui va
se passer.
Julie.
Daniel.C a écrit :salut, Denis.
Ne serait-ce pas plutôt :
Set N = Columns(4).Find(What:=Début, After:=Range("D5"),
LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
False, SearchFormat:úlse)
If Not N Is Nothing Then
Range("D6").Resize(N.Row - 6).EntireRow.Delete
End If
et de même pour les valeurs postérieures ?
DanielSet N = Columns(4).Find(What:=Début, After:=Range("D6"),
LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious,
MatchCase:= _
False, SearchFormat:úlse)
If Not N Is Nothing Then
Range("D6").Resize(N.Row).EntireRow.Delete
End If
Pourquoi tiens-tu à utiliser la méthode Find, tu peux avoir la même chose
avec la méthode Autofilter :
Ceci supprime les lignes inférieur à la date "Début" Et
ou supérieur à la date "fin"
With Range("A6:A" & Range("A65536").End(xlUp).Row).CurrentRegion
.AutoFilter field:=4, Criteria1:="<" & début * 1, _
Operator:=xlOr, Criteria2:=">" & fin * 1
.SpecialCells(xlCellTypeVisible).EntireRow.Delete
End With
"JulieH" <julieh@discussions.microsoft.com> a écrit dans le message de groupe de
discussion : OGHAw8L#JHA.1504@TK2MSFTNGP05.phx.gbl...
Merci à tous les deux pour votre aide. Je n'y comprends plus rien car
rien ne fonctionne et les deux codes font planter la suppression des
valeurs supérieures.
Je repars sur mon idée initiale (non satisfaisante) en créant par la
macro une date avant Début et 1 autre après Fin. On verra bien ce qui va
se passer.
Julie.
Daniel.C a écrit :
salut, Denis.
Ne serait-ce pas plutôt :
Set N = Columns(4).Find(What:=Début, After:=Range("D5"),
LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
False, SearchFormat:úlse)
If Not N Is Nothing Then
Range("D6").Resize(N.Row - 6).EntireRow.Delete
End If
et de même pour les valeurs postérieures ?
Daniel
Set N = Columns(4).Find(What:=Début, After:=Range("D6"),
LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious,
MatchCase:= _
False, SearchFormat:úlse)
If Not N Is Nothing Then
Range("D6").Resize(N.Row).EntireRow.Delete
End If
Pourquoi tiens-tu à utiliser la méthode Find, tu peux avoir la même chose
avec la méthode Autofilter :
Ceci supprime les lignes inférieur à la date "Début" Et
ou supérieur à la date "fin"
With Range("A6:A" & Range("A65536").End(xlUp).Row).CurrentRegion
.AutoFilter field:=4, Criteria1:="<" & début * 1, _
Operator:=xlOr, Criteria2:=">" & fin * 1
.SpecialCells(xlCellTypeVisible).EntireRow.Delete
End With
"JulieH" a écrit dans le message de groupe de
discussion : OGHAw8L#
Merci à tous les deux pour votre aide. Je n'y comprends plus rien car
rien ne fonctionne et les deux codes font planter la suppression des
valeurs supérieures.
Je repars sur mon idée initiale (non satisfaisante) en créant par la
macro une date avant Début et 1 autre après Fin. On verra bien ce qui va
se passer.
Julie.
Daniel.C a écrit :salut, Denis.
Ne serait-ce pas plutôt :
Set N = Columns(4).Find(What:=Début, After:=Range("D5"),
LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
False, SearchFormat:úlse)
If Not N Is Nothing Then
Range("D6").Resize(N.Row - 6).EntireRow.Delete
End If
et de même pour les valeurs postérieures ?
DanielSet N = Columns(4).Find(What:=Début, After:=Range("D6"),
LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious,
MatchCase:= _
False, SearchFormat:úlse)
If Not N Is Nothing Then
Range("D6").Resize(N.Row).EntireRow.Delete
End If
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 à 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 à 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