Recherche donnees entre 2 dates

Bonjour à tous,

J'aimerai exécuter une macro qui me retourne le nom et prénom des personnes dont l'anniversaire est compris en 2 dates.

Est-ce qu'il y a une âme charitable ? Merci beaucoup .

Exemples dates :

date debut : 20/03/2017

dates fin : 28/03/2017

Tableau exemple :

NOM PRENOM DATE_ANNIVERSAIRE

XXXXXXX Floriane 28/11/1994

XXXXXXX Ivana 29/10/1993

XXXXXXX Marine 23/03/1994

XXXXXXX Mélanie 19/04/1993

XXXXXXX Romain 21/04/1994

XXXXXXX Alyssia 25/05/1994

XXXXXXX Justine 14/01/1994

XXXXXXX Adrien 10/08/1993

XXXXXXX Delphine 23/08/1994

XXXXXXX Aloyse 24/10/1994

XXXXXXX Thibaut 22/03/1992

XXXXXXX Estelle 09/07/1994

XXXXXXX Stephen 10/03/1991

XXXXXXX Arthur 03/09/1994

XXXXXXX Imane 13/05/1993

Bonjour,

Pourquoi te faire "tricoter" une macro sur mesure, alors qu'un filtre pourrait donner les mêmes résultats (voire une formule, éventuellement!)

Bonjour MrBenefik, bonjour le forum,

Une proposition à adapter avec deux boîtes d'entrer pour définir les dates de début et de fin :

Sub Macro1()
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim I As Integer 'déclare la variable I (Incrément)
Dim DD As Variant 'déclare la variable DD (Date de Début)
Dim DF As Variant 'déclare la variable DF (Date de Fin)
Dim K As Integer 'déclare la variable K (incrément)
Dim TL() As Variant 'déclare la variable TL (Tableau des Lignes)

DD = Application.InputBox("Tapez la date de Début au format JJ/MM/AA.", "DATE DÉBUT", Type:=1) 'définit la date de début DD
If DD = False Then Exit Sub 'si bouton [Annuler], sort de la procédure
DD = CLng(DD) 'redéfinit DD de type entier long
DF = Application.InputBox("Tapez la date de Fin au format JJ/MM/AA.", "DATE FIN", Type:=1) 'définit la date de fin DF
If DF = False Then Exit Sub 'si bouton [Annuler], sort de la procédure
DF = CLng(DF) 'redéfinit DF de type entier long
Set O = Worksheets("Feuil1") 'définit l'onglet O (à adapter à ton cas)
TV = O.Range("A1").CurrentRegion 'définit le tableau de valeur TV
K = 1 'initialise la variable K
For I = 2 To UBound(TV) 'boucle sur toutes les ligne I du tableau des valeurs TV (en partant de la seconde)
    If CLng(TV(I, 3)) >= DD And CLng(TV(I, 3)) <= DF Then 'condition : si la date (convertie en entier long) est comprise entre la date de début et la date de fin
        ReDim Preserve TL(1 To 2, 1 To K) 'redimensionne le tableau TL (2 lignes, K colonnes)
        TL(1, K) = TV(I, 1) 'récupère dans la ligne 1 de TL, le nom en colonne 1 de TV(= Transposition)
        TL(2, K) = TV(I, 2) 'récupère dans la ligne 2 de TL, le prénom en colonne 2 de TV (= Transposition)
        K = K + 1 'incrémente K (ajoute une colonne au tableau des lignes)
    End If 'fin de la condition
Next I 'prochaine ligne de la boucle
'si K est supérieure à 1, renvoie dans la cellule E1 (à adapter à ton cas) redimensionnée le tableau TL transposé
If K > 1 Then O.Range("E1").Resize(UBound(TL, 2), UBound(TL, 1)).Value = Application.Transpose(TL)
End Sub

Merci Thautème !

Je vais adapter ton Sub() à mon fichier.

Je reviens vers toi dès que possible si tu me le permets.

Rechercher des sujets similaires à "recherche donnees entre dates"