Recherche dates anniversaires

Le
Infogroup
Bonsoir à toutes et à tous,

je reviens sur mon post du 5 mai pour lequel MichDenis ( merci encore à
lui ) m'avait trouvé la solution.

J'ai transposé sa solution sur un autre couple de fichiers, et je n'arrive
pas à le faire fonctionner.

Sans doute ai-je oublié quelquechose ?

Je joints en fichier zip le couple de fichiers "Pense bête.xls" & "Dates
anniversaires.xls"

http://cjoint.com/?foufkvsOoK

Il faut ouvrir le fichier Pense bête et cliquer sur le bouton pour effectuer
la requête.

D'autres part, j'ai remarqué que sur la solution de MichDenis, si
l'étiquette de colonne n'est pas sur la ligne 1, il se provoque une erreur
lors de la requête.

Merci par avance pour vos éclaircissements

Cordialement

Infogroup
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jacky
Le #19336911
Bonsoir,

Je te propose ceci....
En retour ton fichier modifié....
Enregistre le, puis
tu crées un raccourci de ce fichier et tu le colles dans Démarrer / tous
les programmes / démarrage
http://www.cijoint.fr/cjlink.php?file=cj200905/cijZBKbgYj.xls

--
Salutations
JJ


"Infogroup"
Bonsoir à toutes et à tous,

je reviens sur mon post du 5 mai pour lequel MichDenis ( merci encore à
lui ) m'avait trouvé la solution.

J'ai transposé sa solution sur un autre couple de fichiers, et je n'arrive
pas à le faire fonctionner.

Sans doute ai-je oublié quelquechose ?

Je joints en fichier zip le couple de fichiers "Pense bête.xls" & "Dates
anniversaires.xls"

http://cjoint.com/?foufkvsOoK

Il faut ouvrir le fichier Pense bête et cliquer sur le bouton pour
effectuer la requête.

D'autres part, j'ai remarqué que sur la solution de MichDenis, si
l'étiquette de colonne n'est pas sur la ligne 1, il se provoque une erreur
lors de la requête.

Merci par avance pour vos éclaircissements

Cordialement

Infogroup


Infogroup
Le #19337291
Bonsoir Jacky, et merci pour ta réponse,

en fait je n'ai pas été asez clair, mais le but est le suivant :

Lorsque j'ouvre le fichier Pense bête.xls ( ouverture quotidienne ) , il
s'agit de voir dans le fichier Dates anniversaires.xls, mais sans l'ouvrir,
si la date du jour correspond ou non à une des dates anniversaires.

Cdl

Infogroup


"Jacky" news:%
Bonsoir,

Je te propose ceci....
En retour ton fichier modifié....
Enregistre le, puis
tu crées un raccourci de ce fichier et tu le colles dans Démarrer / tous
les programmes / démarrage
http://www.cijoint.fr/cjlink.php?file=cj200905/cijZBKbgYj.xls

--
Salutations
JJ


"Infogroup"
Bonsoir à toutes et à tous,

je reviens sur mon post du 5 mai pour lequel MichDenis ( merci encore à
lui ) m'avait trouvé la solution.

J'ai transposé sa solution sur un autre couple de fichiers, et je
n'arrive
pas à le faire fonctionner.

Sans doute ai-je oublié quelquechose ?

Je joints en fichier zip le couple de fichiers "Pense bête.xls" & "Dates
anniversaires.xls"

http://cjoint.com/?foufkvsOoK

Il faut ouvrir le fichier Pense bête et cliquer sur le bouton pour
effectuer la requête.

D'autres part, j'ai remarqué que sur la solution de MichDenis, si
l'étiquette de colonne n'est pas sur la ligne 1, il se provoque une
erreur
lors de la requête.

Merci par avance pour vos éclaircissements

Cordialement

Infogroup







Jacky
Le #19337401
Re...
J'ai pas tout à fait saisi l'astuce...
Tu dis:
Il faut ouvrir le fichier Pense bête et cliquer sur le bouton pour
effectuer la requête.






Alors pourquoi ouvrir un fichier tiers pour cliquer sur un bouton afin
d"effectuer une requête dans un autre fichier.
--
Salutations
JJ


"Infogroup" %
Bonsoir Jacky, et merci pour ta réponse,

en fait je n'ai pas été asez clair, mais le but est le suivant :

Lorsque j'ouvre le fichier Pense bête.xls ( ouverture quotidienne ) , il
s'agit de voir dans le fichier Dates anniversaires.xls, mais sans
l'ouvrir, si la date du jour correspond ou non à une des dates
anniversaires.

Cdl

Infogroup


"Jacky" news:%
Bonsoir,

Je te propose ceci....
En retour ton fichier modifié....
Enregistre le, puis
tu crées un raccourci de ce fichier et tu le colles dans Démarrer / tous
les programmes / démarrage
http://www.cijoint.fr/cjlink.php?file=cj200905/cijZBKbgYj.xls

--
Salutations
JJ


"Infogroup"
Bonsoir à toutes et à tous,

je reviens sur mon post du 5 mai pour lequel MichDenis ( merci encore à
lui ) m'avait trouvé la solution.

J'ai transposé sa solution sur un autre couple de fichiers, et je
n'arrive
pas à le faire fonctionner.

Sans doute ai-je oublié quelquechose ?

Je joints en fichier zip le couple de fichiers "Pense bête.xls" & "Dates
anniversaires.xls"

http://cjoint.com/?foufkvsOoK

Il faut ouvrir le fichier Pense bête et cliquer sur le bouton pour
effectuer la requête.

D'autres part, j'ai remarqué que sur la solution de MichDenis, si
l'étiquette de colonne n'est pas sur la ligne 1, il se provoque une
erreur
lors de la requête.

Merci par avance pour vos éclaircissements

Cordialement

Infogroup










MichDenis
Le #19337941
Bonjour Infogroup,


Pour rechercher une date en A1 dans ta feuille Essai de ton fichier "Pense bête.xls"
dans le fichier "anniversaires.xls", tu peux utiliser la procédure suivante.
J'ai simplement joué un peu avec le format.

Remarque : Si tu veux rechercher une date anniversaire comme le 15 mai
peu importe l'année de naissance des individus de la liste, cela ne va pas
fonctionner. Excel sait que les cellules contiennent des dates et le format
ne modifie pas la valeur de la cellule. Si c'est cela qui t'intéresse, il faudrait
que tu ajoutes une colonne et que tu affiches dans cette dernière que le jour
et mois de naissance des individus et que cette colonne soit au format texte.
Comme ça, dans ta requête, tu pourrais rechercher une "chaîne de caractère"
et non une date. (et la procédure ressemblerait à la deuxième proposition.

'**********************************************************************
Sub Recherche_Anniversaire()

Dim Conn As ADODB.Connection, Rst As New ADODB.Recordset
Dim Requete As String, NomFeuille As String
Dim File As String, ColEtiq As String

'********Variables à définir***************
'Fichier sur lequel se fera la requête :
File = ThisWorkbook.Path & "Dates anniversaires.xls"

'Nom de la feuille du fichier où sont les données
'Dans la requête, j'utilise la variable.
NomFeuille = "Anniversaires"
'Nom de l'étiquette de colonne :
ColEtiq = "Naissance"
'***********************************************

Set Conn = New ADODB.Connection
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & File & ";" & _
"Extended Properties=""Excel 8.0;HDR=YES;"""

'En supposant que tu veux rechercher les anniversaires
'de la date exprimée en cellule A1
'-----------------------------------------------
Dim LaDate As String
With Worksheets("Essai")
With .Range("A1")
Jour = Day(.Value)
Mois = Month(.Value)
Année = Year(.Value)
End With
End With

Z = Format(DateSerial(Année, Mois, Jour), "m/d/yyyy")
'-----------------------------------------------

'La requête qui sera exécutée.
Requete = "SELECT " & ColEtiq & " From [" & NomFeuille & "$] " & _
"Where " & ColEtiq & "=#" & Z & "#"

Rst.Open Requete, Conn, adOpenStatic, adLockOptimistic
Nb = Rst.RecordCount
MsgBox "Il y a " & Nb & " anniversaire(s) aujourd'hui."

End Sub
'**********************************************************************

Proposition 2:
rechercher tous les 'anniversaires coresspondant au 7 avril
peu importe l'année de naissance. Ceci présuppose que
dans ta feuille anniversaire, ta colonne de date est au format
texte et ne contient que le jour et le mois de l'anniversaire.

'========================================= "Sub Recherche_Anniversaire1()

Dim Conn As ADODB.Connection, Rst As New ADODB.Recordset
Dim Requete As String, NomFeuille As String
Dim File As String, ColEtiq As String

'********Variables à définir***************
'Fichier sur lequel se fera la requête :
File = ThisWorkbook.Path & "Dates anniversaires.xls"

'Nom de la feuille du fichier où sont les données
'Dans la requête, j'utilise la variable.
NomFeuille = "Anniversaires"
'Nom de l'étiquette de colonne :
ColEtiq = "Naissance"
'***********************************************

Set Conn = New ADODB.Connection
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & File & ";" & _
"Extended Properties=""Excel 8.0;HDR=YES;"""

'En supposant que tu veux rechercher tous les
'anniversaires coresspondant au 7 avril peu importe
'l'année de naissance
'-----------------------------------------------
Dim LaDate As String
LaDate = """7 avril"""
'-----------------------------------------------

'La requête qui sera exécutée.
Requete = "SELECT " & ColEtiq & " From [" & NomFeuille & "$] " & _
"Where " & ColEtiq & " Like " & LaDate & ""

Rst.Open Requete, Conn, adOpenStatic, adLockOptimistic
Nb = Rst.RecordCount
MsgBox "Il y a " & Nb & " anniversaire(s) aujourd'hui."

End Sub
'==========================================
Infogroup
Le #19338331
Bonjour Jacky,

Tout simplement parceque le fichier Pense bête.xls est ouvert
quotidiennement, alors que le fichier Dates anniversaires.xls est une base
de données archives qui n'est pratiquement jamais ouverte.

Cdl

Infogroup.





"Jacky" news:
Re...
J'ai pas tout à fait saisi l'astuce...
Tu dis:
Il faut ouvrir le fichier Pense bête et cliquer sur le bouton pour
effectuer la requête.






Alors pourquoi ouvrir un fichier tiers pour cliquer sur un bouton afin
d"effectuer une requête dans un autre fichier.
--
Salutations
JJ


"Infogroup" %
Bonsoir Jacky, et merci pour ta réponse,

en fait je n'ai pas été asez clair, mais le but est le suivant :

Lorsque j'ouvre le fichier Pense bête.xls ( ouverture quotidienne ) , il
s'agit de voir dans le fichier Dates anniversaires.xls, mais sans
l'ouvrir, si la date du jour correspond ou non à une des dates
anniversaires.

Cdl

Infogroup


"Jacky" news:%
Bonsoir,

Je te propose ceci....
En retour ton fichier modifié....
Enregistre le, puis
tu crées un raccourci de ce fichier et tu le colles dans Démarrer / tous
les programmes / démarrage
http://www.cijoint.fr/cjlink.php?file=cj200905/cijZBKbgYj.xls

--
Salutations
JJ


"Infogroup"
Bonsoir à toutes et à tous,

je reviens sur mon post du 5 mai pour lequel MichDenis ( merci encore à
lui ) m'avait trouvé la solution.

J'ai transposé sa solution sur un autre couple de fichiers, et je
n'arrive
pas à le faire fonctionner.

Sans doute ai-je oublié quelquechose ?

Je joints en fichier zip le couple de fichiers "Pense bête.xls" &
"Dates
anniversaires.xls"

http://cjoint.com/?foufkvsOoK

Il faut ouvrir le fichier Pense bête et cliquer sur le bouton pour
effectuer la requête.

D'autres part, j'ai remarqué que sur la solution de MichDenis, si
l'étiquette de colonne n'est pas sur la ligne 1, il se provoque une
erreur
lors de la requête.

Merci par avance pour vos éclaircissements

Cordialement

Infogroup














Infogroup
Le #19338471
Bonjour MichDenis et merci de t'intérèsser une nouvelle fois à mon problème.

En fait, la date en A1 de la feuille Essai du fichier Pense bête.xls n'est
là que pour m'indiquer la date du jour, mais elle n'entre en rien dans la
requête qui nous intérèsse.

Comme j'expliquais à Jacky, le fichier Pense bête est ouvert
quotidiennement, et c'est à partir de l'ouverture de ce fichier que je
voudrais donc vérifier dans le fichier Dates anniversaires.xls qui lui reste
fermé, si la date du jour correspond éventuellement à une ou plusieurs
date(s) anniversaire(s), peu importe l'année d'ailleurs.

Tu me précises que je dois mettre les dates au format texte, je fais donc
ces quelques manips et je te tiens au courant.

Merci encore

Cdl

Infigroup



"MichDenis" news:%
Bonjour Infogroup,


Pour rechercher une date en A1 dans ta feuille Essai de ton fichier "Pense
bête.xls"
dans le fichier "anniversaires.xls", tu peux utiliser la procédure
suivante.
J'ai simplement joué un peu avec le format.

Remarque : Si tu veux rechercher une date anniversaire comme le 15 mai
peu importe l'année de naissance des individus de la liste, cela ne va pas
fonctionner. Excel sait que les cellules contiennent des dates et le
format
ne modifie pas la valeur de la cellule. Si c'est cela qui t'intéresse, il
faudrait
que tu ajoutes une colonne et que tu affiches dans cette dernière que le
jour
et mois de naissance des individus et que cette colonne soit au format
texte.
Comme ça, dans ta requête, tu pourrais rechercher une "chaîne de
caractère"
et non une date. (et la procédure ressemblerait à la deuxième proposition.

'**********************************************************************
Sub Recherche_Anniversaire()

Dim Conn As ADODB.Connection, Rst As New ADODB.Recordset
Dim Requete As String, NomFeuille As String
Dim File As String, ColEtiq As String

'********Variables à définir***************
'Fichier sur lequel se fera la requête :
File = ThisWorkbook.Path & "Dates anniversaires.xls"

'Nom de la feuille du fichier où sont les données
'Dans la requête, j'utilise la variable.
NomFeuille = "Anniversaires"
'Nom de l'étiquette de colonne :
ColEtiq = "Naissance"
'***********************************************

Set Conn = New ADODB.Connection
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & File & ";" & _
"Extended Properties=""Excel 8.0;HDR=YES;"""

'En supposant que tu veux rechercher les anniversaires
'de la date exprimée en cellule A1
'-----------------------------------------------
Dim LaDate As String
With Worksheets("Essai")
With .Range("A1")
Jour = Day(.Value)
Mois = Month(.Value)
Année = Year(.Value)
End With
End With

Z = Format(DateSerial(Année, Mois, Jour), "m/d/yyyy")
'-----------------------------------------------

'La requête qui sera exécutée.
Requete = "SELECT " & ColEtiq & " From [" & NomFeuille & "$] " & _
"Where " & ColEtiq & "=#" & Z & "#"

Rst.Open Requete, Conn, adOpenStatic, adLockOptimistic
Nb = Rst.RecordCount
MsgBox "Il y a " & Nb & " anniversaire(s) aujourd'hui."

End Sub
'**********************************************************************

Proposition 2:
rechercher tous les 'anniversaires coresspondant au 7 avril
peu importe l'année de naissance. Ceci présuppose que
dans ta feuille anniversaire, ta colonne de date est au format
texte et ne contient que le jour et le mois de l'anniversaire.

'========================================= > "Sub Recherche_Anniversaire1()

Dim Conn As ADODB.Connection, Rst As New ADODB.Recordset
Dim Requete As String, NomFeuille As String
Dim File As String, ColEtiq As String

'********Variables à définir***************
'Fichier sur lequel se fera la requête :
File = ThisWorkbook.Path & "Dates anniversaires.xls"

'Nom de la feuille du fichier où sont les données
'Dans la requête, j'utilise la variable.
NomFeuille = "Anniversaires"
'Nom de l'étiquette de colonne :
ColEtiq = "Naissance"
'***********************************************

Set Conn = New ADODB.Connection
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & File & ";" & _
"Extended Properties=""Excel 8.0;HDR=YES;"""

'En supposant que tu veux rechercher tous les
'anniversaires coresspondant au 7 avril peu importe
'l'année de naissance
'-----------------------------------------------
Dim LaDate As String
LaDate = """7 avril"""
'-----------------------------------------------

'La requête qui sera exécutée.
Requete = "SELECT " & ColEtiq & " From [" & NomFeuille & "$] " & _
"Where " & ColEtiq & " Like " & LaDate & ""

Rst.Open Requete, Conn, adOpenStatic, adLockOptimistic
Nb = Rst.RecordCount
MsgBox "Il y a " & Nb & " anniversaire(s) aujourd'hui."

End Sub
'========================================= >


MichDenis
Le #19339861
Voici tes 2 fichiers corrigés : http://cjoint.com/?fpmrOMWNTq



"Infogroup"
Bonjour MichDenis et merci de t'intérèsser une nouvelle fois à mon problème.

En fait, la date en A1 de la feuille Essai du fichier Pense bête.xls n'est
là que pour m'indiquer la date du jour, mais elle n'entre en rien dans la
requête qui nous intérèsse.

Comme j'expliquais à Jacky, le fichier Pense bête est ouvert
quotidiennement, et c'est à partir de l'ouverture de ce fichier que je
voudrais donc vérifier dans le fichier Dates anniversaires.xls qui lui reste
fermé, si la date du jour correspond éventuellement à une ou plusieurs
date(s) anniversaire(s), peu importe l'année d'ailleurs.

Tu me précises que je dois mettre les dates au format texte, je fais donc
ces quelques manips et je te tiens au courant.

Merci encore

Cdl

Infigroup



"MichDenis" news:%
Bonjour Infogroup,


Pour rechercher une date en A1 dans ta feuille Essai de ton fichier "Pense
bête.xls"
dans le fichier "anniversaires.xls", tu peux utiliser la procédure
suivante.
J'ai simplement joué un peu avec le format.

Remarque : Si tu veux rechercher une date anniversaire comme le 15 mai
peu importe l'année de naissance des individus de la liste, cela ne va pas
fonctionner. Excel sait que les cellules contiennent des dates et le
format
ne modifie pas la valeur de la cellule. Si c'est cela qui t'intéresse, il
faudrait
que tu ajoutes une colonne et que tu affiches dans cette dernière que le
jour
et mois de naissance des individus et que cette colonne soit au format
texte.
Comme ça, dans ta requête, tu pourrais rechercher une "chaîne de
caractère"
et non une date. (et la procédure ressemblerait à la deuxième proposition.

'**********************************************************************
Sub Recherche_Anniversaire()

Dim Conn As ADODB.Connection, Rst As New ADODB.Recordset
Dim Requete As String, NomFeuille As String
Dim File As String, ColEtiq As String

'********Variables à définir***************
'Fichier sur lequel se fera la requête :
File = ThisWorkbook.Path & "Dates anniversaires.xls"

'Nom de la feuille du fichier où sont les données
'Dans la requête, j'utilise la variable.
NomFeuille = "Anniversaires"
'Nom de l'étiquette de colonne :
ColEtiq = "Naissance"
'***********************************************

Set Conn = New ADODB.Connection
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & File & ";" & _
"Extended Properties=""Excel 8.0;HDR=YES;"""

'En supposant que tu veux rechercher les anniversaires
'de la date exprimée en cellule A1
'-----------------------------------------------
Dim LaDate As String
With Worksheets("Essai")
With .Range("A1")
Jour = Day(.Value)
Mois = Month(.Value)
Année = Year(.Value)
End With
End With

Z = Format(DateSerial(Année, Mois, Jour), "m/d/yyyy")
'-----------------------------------------------

'La requête qui sera exécutée.
Requete = "SELECT " & ColEtiq & " From [" & NomFeuille & "$] " & _
"Where " & ColEtiq & "=#" & Z & "#"

Rst.Open Requete, Conn, adOpenStatic, adLockOptimistic
Nb = Rst.RecordCount
MsgBox "Il y a " & Nb & " anniversaire(s) aujourd'hui."

End Sub
'**********************************************************************

Proposition 2:
rechercher tous les 'anniversaires coresspondant au 7 avril
peu importe l'année de naissance. Ceci présuppose que
dans ta feuille anniversaire, ta colonne de date est au format
texte et ne contient que le jour et le mois de l'anniversaire.

'========================================= > "Sub Recherche_Anniversaire1()

Dim Conn As ADODB.Connection, Rst As New ADODB.Recordset
Dim Requete As String, NomFeuille As String
Dim File As String, ColEtiq As String

'********Variables à définir***************
'Fichier sur lequel se fera la requête :
File = ThisWorkbook.Path & "Dates anniversaires.xls"

'Nom de la feuille du fichier où sont les données
'Dans la requête, j'utilise la variable.
NomFeuille = "Anniversaires"
'Nom de l'étiquette de colonne :
ColEtiq = "Naissance"
'***********************************************

Set Conn = New ADODB.Connection
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & File & ";" & _
"Extended Properties=""Excel 8.0;HDR=YES;"""

'En supposant que tu veux rechercher tous les
'anniversaires coresspondant au 7 avril peu importe
'l'année de naissance
'-----------------------------------------------
Dim LaDate As String
LaDate = """7 avril"""
'-----------------------------------------------

'La requête qui sera exécutée.
Requete = "SELECT " & ColEtiq & " From [" & NomFeuille & "$] " & _
"Where " & ColEtiq & " Like " & LaDate & ""

Rst.Open Requete, Conn, adOpenStatic, adLockOptimistic
Nb = Rst.RecordCount
MsgBox "Il y a " & Nb & " anniversaire(s) aujourd'hui."

End Sub
'========================================= >


Infogroup
Le #19341391
Merci MichDenis,

cette fois c'est OK

merci encore pour ta disponibilité

Cdl

Infogroup


"MichDenis" news:%
Voici tes 2 fichiers corrigés : http://cjoint.com/?fpmrOMWNTq



"Infogroup" discussion :

Bonjour MichDenis et merci de t'intérèsser une nouvelle fois à mon
problème.

En fait, la date en A1 de la feuille Essai du fichier Pense bête.xls n'est
là que pour m'indiquer la date du jour, mais elle n'entre en rien dans la
requête qui nous intérèsse.

Comme j'expliquais à Jacky, le fichier Pense bête est ouvert
quotidiennement, et c'est à partir de l'ouverture de ce fichier que je
voudrais donc vérifier dans le fichier Dates anniversaires.xls qui lui
reste
fermé, si la date du jour correspond éventuellement à une ou plusieurs
date(s) anniversaire(s), peu importe l'année d'ailleurs.

Tu me précises que je dois mettre les dates au format texte, je fais donc
ces quelques manips et je te tiens au courant.

Merci encore

Cdl

Infigroup



"MichDenis" news:%
Bonjour Infogroup,


Pour rechercher une date en A1 dans ta feuille Essai de ton fichier
"Pense
bête.xls"
dans le fichier "anniversaires.xls", tu peux utiliser la procédure
suivante.
J'ai simplement joué un peu avec le format.

Remarque : Si tu veux rechercher une date anniversaire comme le 15 mai
peu importe l'année de naissance des individus de la liste, cela ne va
pas
fonctionner. Excel sait que les cellules contiennent des dates et le
format
ne modifie pas la valeur de la cellule. Si c'est cela qui t'intéresse, il
faudrait
que tu ajoutes une colonne et que tu affiches dans cette dernière que le
jour
et mois de naissance des individus et que cette colonne soit au format
texte.
Comme ça, dans ta requête, tu pourrais rechercher une "chaîne de
caractère"
et non une date. (et la procédure ressemblerait à la deuxième
proposition.

'**********************************************************************
Sub Recherche_Anniversaire()

Dim Conn As ADODB.Connection, Rst As New ADODB.Recordset
Dim Requete As String, NomFeuille As String
Dim File As String, ColEtiq As String

'********Variables à définir***************
'Fichier sur lequel se fera la requête :
File = ThisWorkbook.Path & "Dates anniversaires.xls"

'Nom de la feuille du fichier où sont les données
'Dans la requête, j'utilise la variable.
NomFeuille = "Anniversaires"
'Nom de l'étiquette de colonne :
ColEtiq = "Naissance"
'***********************************************

Set Conn = New ADODB.Connection
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & File & ";" & _
"Extended Properties=""Excel 8.0;HDR=YES;"""

'En supposant que tu veux rechercher les anniversaires
'de la date exprimée en cellule A1
'-----------------------------------------------
Dim LaDate As String
With Worksheets("Essai")
With .Range("A1")
Jour = Day(.Value)
Mois = Month(.Value)
Année = Year(.Value)
End With
End With

Z = Format(DateSerial(Année, Mois, Jour), "m/d/yyyy")
'-----------------------------------------------

'La requête qui sera exécutée.
Requete = "SELECT " & ColEtiq & " From [" & NomFeuille & "$] " & _
"Where " & ColEtiq & "=#" & Z & "#"

Rst.Open Requete, Conn, adOpenStatic, adLockOptimistic
Nb = Rst.RecordCount
MsgBox "Il y a " & Nb & " anniversaire(s) aujourd'hui."

End Sub
'**********************************************************************

Proposition 2:
rechercher tous les 'anniversaires coresspondant au 7 avril
peu importe l'année de naissance. Ceci présuppose que
dans ta feuille anniversaire, ta colonne de date est au format
texte et ne contient que le jour et le mois de l'anniversaire.

'========================================= >> "Sub Recherche_Anniversaire1()

Dim Conn As ADODB.Connection, Rst As New ADODB.Recordset
Dim Requete As String, NomFeuille As String
Dim File As String, ColEtiq As String

'********Variables à définir***************
'Fichier sur lequel se fera la requête :
File = ThisWorkbook.Path & "Dates anniversaires.xls"

'Nom de la feuille du fichier où sont les données
'Dans la requête, j'utilise la variable.
NomFeuille = "Anniversaires"
'Nom de l'étiquette de colonne :
ColEtiq = "Naissance"
'***********************************************

Set Conn = New ADODB.Connection
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & File & ";" & _
"Extended Properties=""Excel 8.0;HDR=YES;"""

'En supposant que tu veux rechercher tous les
'anniversaires coresspondant au 7 avril peu importe
'l'année de naissance
'-----------------------------------------------
Dim LaDate As String
LaDate = """7 avril"""
'-----------------------------------------------

'La requête qui sera exécutée.
Requete = "SELECT " & ColEtiq & " From [" & NomFeuille & "$] " & _
"Where " & ColEtiq & " Like " & LaDate & ""

Rst.Open Requete, Conn, adOpenStatic, adLockOptimistic
Nb = Rst.RecordCount
MsgBox "Il y a " & Nb & " anniversaire(s) aujourd'hui."

End Sub
'========================================= >>





Publicité
Poster une réponse
Anonyme