Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Extraction de Données

21 réponses
Avatar
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:=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.

N.B : j'ai le même problème pour la Fin.

Si quelqu'un peut m'aider, merci par avance.


Julie

10 réponses

1 2 3
Avatar
Daniel.C
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


Avatar
JulieH
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






Avatar
Daniel.C
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








Avatar
JulieH
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












Avatar
JulieH
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












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

"JulieH" a écrit dans le message de
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













Avatar
MichDenis
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 ?
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












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












Avatar
Daniel.C
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" 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 ?
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












Avatar
Daniel.C
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" 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 ?
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














1 2 3