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

Éliminer lignes selon dates

3 réponses
Avatar
Denys
Bonjour à tous,

Petit problème avant d'amorcer le weekend....

Sur un userform, j'ai un calendrier 4 checkbox et 4 textbox. Lorsque
l'usager choisit une date sur le calendrier et clique sur un checkbox, une
date s'inscrit dans le textbox correspondant. Voici un peu à quoi çà
ressemble:

Calendrier OK CANCEL

Date traitée (Colonne M) Date effective (Colonne N)
De (DateTextbox1) À (DateTextbox2) De (DateTextbox3) À
(DateTextbox4)

En cliquant sur OK, je souhaite qu'Excel élimine toutes les lignes
correspondant aux critères suivants:

Éliminer la ligne si, la cellule de la colonne N (date effective)
correspond à une date comprise entre ou égale à celle du textbox3 et du
textbox 4, ET si la date de la cellule correspondante* en colone M (date
traitée) est comprise entre celle du textbox1 et du textbox2.

*Disons M3 correspondant N3

Pas évident !!! Enfin, si vous avez une piste, j'apprécierais infiniment...

Denys

3 réponses

Avatar
Denys
Ooooppps..

J'ai oublié de dire qu'en cliquant sur OK, les valeurs des textbox (des
dates donc) vont s'inscrire en AA1 AB1 AC1 AD1 respectivement....

C'est sûrement plus facile à s'y retrouver...

Merci

Denys


Bonjour à tous,

Petit problème avant d'amorcer le weekend....

Sur un userform, j'ai un calendrier 4 checkbox et 4 textbox. Lorsque
l'usager choisit une date sur le calendrier et clique sur un checkbox, une
date s'inscrit dans le textbox correspondant. Voici un peu à quoi çà
ressemble:

Calendrier OK CANCEL

Date traitée (Colonne M) Date effective (Colonne N)
De (DateTextbox1) À (DateTextbox2) De (DateTextbox3) À
(DateTextbox4)

En cliquant sur OK, je souhaite qu'Excel élimine toutes les lignes
correspondant aux critères suivants:

Éliminer la ligne si, la cellule de la colonne N (date effective)
correspond à une date comprise entre ou égale à celle du textbox3 et du
textbox 4, ET si la date de la cellule correspondante* en colone M (date
traitée) est comprise entre celle du textbox1 et du textbox2.

*Disons M3 correspondant N3

Pas évident !!! Enfin, si vous avez une piste, j'apprécierais infiniment...

Denys





Avatar
michdenis
Bonjour Denys,

Tu peux utiliser le filtre élaboré pour solutionner ton problème :

IL ne te reste plus qu'à adapter les adresses des plages et le nom de la feuille dans la procédure.


Exemple pour ton critère dans ta fenêtre élaboré :

E1 = Textbox1 F1 = Textbox2
F1 = Textbox 3 F2 = Textbox4

La zone de critères comprend 2 cellules H1:H2
H1 : Tu laisses totalement vide
En H2 : la formule suivante
=ET(A2>=$E$1;A2<=$F$1;B2>=$E$2;B2<=$F$2)

Dans l'exemple les 2 colonnes sont A et B
A2 et B2 représentent les 2 premières dates des colonnes
A1 et B1 étant les étiquettes de colonnes.

La procédure devrait ressembler à ceci :
'----------------------------------
Sub SupprimerLignes()

Dim Sh As Worksheet
Set Sh = Worksheets("Feuil1")

Application.ScreenUpdating = False
With Sh
.Range("H1") = ""
.Range("H2").FormulaLocal = "=ET(A2>=$E$1;A2<=$F$1;B2>=$E$2;B2<=$F$2)"
With .Range("A1:B300")
.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
Sh.Range("H1:H2"), Unique:úlse
.Offset(1).Resize(.Rows.Count - 1) _
.SpecialCells(xlCellTypeVisible).EntireRow.Delete xlUp
End With
.Range("H2") = ""
.ShowAllData
End With
End Sub
'----------------------------------


Salutations!






"Denys" a écrit dans le message de news:
Bonjour à tous,

Petit problème avant d'amorcer le weekend....

Sur un userform, j'ai un calendrier 4 checkbox et 4 textbox. Lorsque
l'usager choisit une date sur le calendrier et clique sur un checkbox, une
date s'inscrit dans le textbox correspondant. Voici un peu à quoi çà
ressemble:

Calendrier OK CANCEL

Date traitée (Colonne M) Date effective (Colonne N)
De (DateTextbox1) À (DateTextbox2) De (DateTextbox3) À
(DateTextbox4)

En cliquant sur OK, je souhaite qu'Excel élimine toutes les lignes
correspondant aux critères suivants:

Éliminer la ligne si, la cellule de la colonne N (date effective)
correspond à une date comprise entre ou égale à celle du textbox3 et du
textbox 4, ET si la date de la cellule correspondante* en colone M (date
traitée) est comprise entre celle du textbox1 et du textbox2.

*Disons M3 correspondant N3

Pas évident !!! Enfin, si vous avez une piste, j'apprécierais infiniment...

Denys
Avatar
Denys
Bonsoir Denis,

C'est brillant comme idée !!!! Beaucoup plus efficace et moins tordu que ce
que j'avais en tête !!!

Merci infiniment et bonne fin de semaine...

Denys


Bonjour Denys,

Tu peux utiliser le filtre élaboré pour solutionner ton problème :

IL ne te reste plus qu'à adapter les adresses des plages et le nom de la feuille dans la procédure.


Exemple pour ton critère dans ta fenêtre élaboré :

E1 = Textbox1 F1 = Textbox2
F1 = Textbox 3 F2 = Textbox4

La zone de critères comprend 2 cellules H1:H2
H1 : Tu laisses totalement vide
En H2 : la formule suivante
=ET(A2>=$E$1;A2<=$F$1;B2>=$E$2;B2<=$F$2)

Dans l'exemple les 2 colonnes sont A et B
A2 et B2 représentent les 2 premières dates des colonnes
A1 et B1 étant les étiquettes de colonnes.

La procédure devrait ressembler à ceci :
'----------------------------------
Sub SupprimerLignes()

Dim Sh As Worksheet
Set Sh = Worksheets("Feuil1")

Application.ScreenUpdating = False
With Sh
.Range("H1") = ""
.Range("H2").FormulaLocal = "=ET(A2>=$E$1;A2<=$F$1;B2>=$E$2;B2<=$F$2)"
With .Range("A1:B300")
.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
Sh.Range("H1:H2"), Unique:úlse
.Offset(1).Resize(.Rows.Count - 1) _
.SpecialCells(xlCellTypeVisible).EntireRow.Delete xlUp
End With
.Range("H2") = ""
.ShowAllData
End With
End Sub
'----------------------------------


Salutations!






"Denys" a écrit dans le message de news:
Bonjour à tous,

Petit problème avant d'amorcer le weekend....

Sur un userform, j'ai un calendrier 4 checkbox et 4 textbox. Lorsque
l'usager choisit une date sur le calendrier et clique sur un checkbox, une
date s'inscrit dans le textbox correspondant. Voici un peu à quoi çà
ressemble:

Calendrier OK CANCEL

Date traitée (Colonne M) Date effective (Colonne N)
De (DateTextbox1) À (DateTextbox2) De (DateTextbox3) À
(DateTextbox4)

En cliquant sur OK, je souhaite qu'Excel élimine toutes les lignes
correspondant aux critères suivants:

Éliminer la ligne si, la cellule de la colonne N (date effective)
correspond à une date comprise entre ou égale à celle du textbox3 et du
textbox 4, ET si la date de la cellule correspondante* en colone M (date
traitée) est comprise entre celle du textbox1 et du textbox2.

*Disons M3 correspondant N3

Pas évident !!! Enfin, si vous avez une piste, j'apprécierais infiniment...

Denys