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

CommandButton pour des dates

1 réponse
Avatar
JeanYvesGascon
Bonjour

Dans une feuille de rendez-vous
A6 =E0 A4000 j'ai des dates sous le format jjj-jj-mm du lundi au
vendredi r=E9p=E9t=E9es 18 fois en fonctions des horaires d=E9crits ci-dess=
ous
B6 =E0 B4000 j'ai des horaires sous le format hh:mm avec =E0 chaque ligne
deux fois la m=EAme valeur
avec un pas de 15 minutes (14:00; 14:00; 14:15; 14:15; 15:00 ....)

Afin de faire une recherche sur la date du jour, j'ai entr=E9 en A1
=3DAujourd'hui()

Gr=E2ce =E0 un premier bouton "RdV=3D0" avec pour code
Private Sub CommandButton1_Click()
' Rdv du jour (RdV=3DO)
[a6].AutoFilter Field:=3D1, Criteria1:=3D">=3D" & CDbl(Range("A1"))
End Sub

Cela fonctionne de fa=E7on impeccable

Par contre je butes pour avoir la m=EAme m=E9canique avec la veille "J-1"
ou le lendemain "J+1"

voulant =E9viter la solution
A10=3DA1-1 et le code
Private Sub CommandButton2_Click()
' Rdv d'hier (J-1)
[a6].AutoFilter Field:=3D1, Criteria1:=3D">=3D" & CDbl(Range("A10"))
End Sub
et
A11=3DA1+1
Private Sub CommandButton3_Click()
' Rdv de demain (J+1)
[a6].AutoFilter Field:=3D1, Criteria1:=3D">=3D" & CDbl(Range("A11"))
End Sub

Merci pour vos =E9clairages

Cordialement

Jean-Yves

1 réponse

Avatar
MichD
Bonjour,

Utilise plutôt "AdvancedFilter" sur la plage de date

A5 est l'étiquette de la colonne

Tu dois définir une plage de critère : A1:A2
Exemple : A1 : tu laisses totalement vide
A2 : Tu insères la formule ¦>=("12/12/2011"*1)+1 OU ¦>=("12/12/2011"*1)-1 selon le cas
Si tu préfères, tu peux remplacer la date "12/12/2001" par une référence à une adresse particulière
de cellule
A6 : représente la première donnée (date) de la plage de cellules.

La liste de code pourrait ressembler à ceci :
Range("A5:A4000").AdvancedFilter xlFilterInPlace, Range("A1:A2")



MichD
------------------------------------------
"JeanYvesGascon" a écrit dans le message de groupe de discussion :


Bonjour

Dans une feuille de rendez-vous
A6 à A4000 j'ai des dates sous le format jjj-jj-mm du lundi au
vendredi répétées 18 fois en fonctions des horaires décrits ci-dessous
B6 à B4000 j'ai des horaires sous le format hh:mm avec à chaque ligne
deux fois la même valeur
avec un pas de 15 minutes (14:00; 14:00; 14:15; 14:15; 15:00 ....)

Afin de faire une recherche sur la date du jour, j'ai entré en A1
=Aujourd'hui()

Grâce à un premier bouton "RdV=0" avec pour code
Private Sub CommandButton1_Click()
' Rdv du jour (RdV=O)
[a6].AutoFilter Field:=1, Criteria1:=">=" & CDbl(Range("A1"))
End Sub

Cela fonctionne de façon impeccable

Par contre je butes pour avoir la même mécanique avec la veille "J-1"
ou le lendemain "J+1"

voulant éviter la solution
A10¡-1 et le code
Private Sub CommandButton2_Click()
' Rdv d'hier (J-1)
[a6].AutoFilter Field:=1, Criteria1:=">=" & CDbl(Range("A10"))
End Sub
et
A11¡+1
Private Sub CommandButton3_Click()
' Rdv de demain (J+1)
[a6].AutoFilter Field:=1, Criteria1:=">=" & CDbl(Range("A11"))
End Sub

Merci pour vos éclairages

Cordialement

Jean-Yves