Extraction de Données

Le
JulieH
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 3
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Daniel.C
Le #19659861
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


JulieH
Le #19660061
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






Daniel.C
Le #19660761
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








JulieH
Le #19661131
J'ai simplifié mon fichier pour le mettre sur CJoint mais l'essentiel y est.

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












JulieH
Le #19661121
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












Péhemme
Le #19661111
Julie,
Si tu ne publies pas le lien que t'a donné Ci-joint, Daniel ne pourra rien
pour toi...
;-)
Michel

"JulieH" news:u6hIihK%
J'ai simplifié mon fichier pour le mettre sur CJoint mais l'essentiel y
est.

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













MichDenis
Le #19661341
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" 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 ?
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












JulieH
Le #19661471
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" 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 ?
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












Daniel.C
Le #19661681
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" 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 ?
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












Daniel.C
Le #19661651
Mets à la place :
If n > 6 Then Rows("6:" & n - 1).Delete
Daniel

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" 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 ?
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














Publicité
Poster une réponse
Anonyme