Aide pour fonction vba sur recherche date
Résolu
Anecdote
-
Anecdote -
Anecdote -
Bonjour,
Je souhaiterai trouver une date dans un tableau.
Voici la fonction vba excel que j'ai commencé mais ça ne marche pas.
Function Recherchedate(Jour As Date, Nom as String)
Dim vTableau As Range
Worksheets(Nom).Activate
Set vTableau = Range("B3:C50")
If vTableau.Find(Jour).Select = True Then
Active.Cell.Value = 1
Else: Active.Cell.Value = 0
End If
End Function
Si quelqu'un pouvait m'aider à finaliser cette fonction, ce serait génial. Merci d'avance.
Anecdote
Je souhaiterai trouver une date dans un tableau.
Voici la fonction vba excel que j'ai commencé mais ça ne marche pas.
Function Recherchedate(Jour As Date, Nom as String)
Dim vTableau As Range
Worksheets(Nom).Activate
Set vTableau = Range("B3:C50")
If vTableau.Find(Jour).Select = True Then
Active.Cell.Value = 1
Else: Active.Cell.Value = 0
End If
End Function
Si quelqu'un pouvait m'aider à finaliser cette fonction, ce serait génial. Merci d'avance.
Anecdote
A voir également:
- Aide pour fonction vba sur recherche date
- Fonction si et - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Recherche image - Guide
- Fonction find vba - Astuces et Solutions
- Je recherche une chanson - Guide
3 réponses
Bonjour,
lorsque tu fais une fonction le résultat est retourné quand tu affectes une valeur à ton nom de fonction.
le .select de vTableau.Find(Jour).Select est superflu à mon avis...
Sans regarder si le reste ça serait donc :
Function Recherchedate(Jour As Date, Nom as String)
Dim vTableau As Range
Worksheets(Nom).Activate
Set vTableau = Range("B3:C50")
If vTableau.Find(Jour) = True Then
Recherchedate = 1
Else: Recherchedate = 0
End If
End Function
ou bien si tu veux retourner VRAI ou FAUX :
Function Recherchedate(Jour As Date, Nom as String) as boolean
Dim vTableau As Range
Worksheets(Nom).Activate
Set vTableau = Range("B3:C50")
Recherchedate = vTableau.Find(Jour)
End Function
en plus tu fais une activation de feuille pour rien, tu peux tester en plus :
Function Recherchedate(Jour As Date, Nom as String) as boolean
Dim vTableau As Range
Set vTableau = Worksheets(Nom).Range("B3:C50")
Recherchedate = vTableau.Find(Jour)
End Function
et tant qu'on y est le .select de vTableau.Find(Jour).Select est superflu à mon avis...
eric
lorsque tu fais une fonction le résultat est retourné quand tu affectes une valeur à ton nom de fonction.
le .select de vTableau.Find(Jour).Select est superflu à mon avis...
Sans regarder si le reste ça serait donc :
Function Recherchedate(Jour As Date, Nom as String)
Dim vTableau As Range
Worksheets(Nom).Activate
Set vTableau = Range("B3:C50")
If vTableau.Find(Jour) = True Then
Recherchedate = 1
Else: Recherchedate = 0
End If
End Function
ou bien si tu veux retourner VRAI ou FAUX :
Function Recherchedate(Jour As Date, Nom as String) as boolean
Dim vTableau As Range
Worksheets(Nom).Activate
Set vTableau = Range("B3:C50")
Recherchedate = vTableau.Find(Jour)
End Function
en plus tu fais une activation de feuille pour rien, tu peux tester en plus :
Function Recherchedate(Jour As Date, Nom as String) as boolean
Dim vTableau As Range
Set vTableau = Worksheets(Nom).Range("B3:C50")
Recherchedate = vTableau.Find(Jour)
End Function
et tant qu'on y est le .select de vTableau.Find(Jour).Select est superflu à mon avis...
eric
Bonjour,
Eric ( bonjour) a répondu ce matin au moment où il y avait des problèmes sur le forum...
Je me permets donc de prendre le témoin.
Je te conseille vivement de lire ce topo si tu te lances dans les fonctions:
http://xcell05.free.fr/pages/prog/udf.htm
rédigé par Laurent Longre, un des meilleurs exceliens de la planète
je cite:
"Dans VBA, le nom de la fonction sert à la fois à l'identifier et à stocker la valeur de retour." ...
"Parmi les instructions inutilisables, les plus courantes sont les méthode .Find et .SpecialCells de l'objet Range, ainsi que les propriétés CurrentRegion et CurrentArray. "
ci dessous un petit exemple à modifier poour plusieurs pages:
Eric ( bonjour) a répondu ce matin au moment où il y avait des problèmes sur le forum...
Je me permets donc de prendre le témoin.
Je te conseille vivement de lire ce topo si tu te lances dans les fonctions:
http://xcell05.free.fr/pages/prog/udf.htm
rédigé par Laurent Longre, un des meilleurs exceliens de la planète
je cite:
"Dans VBA, le nom de la fonction sert à la fois à l'identifier et à stocker la valeur de retour." ...
"Parmi les instructions inutilisables, les plus courantes sont les méthode .Find et .SpecialCells de l'objet Range, ainsi que les propriétés CurrentRegion et CurrentArray. "
ci dessous un petit exemple à modifier poour plusieurs pages:
Function recherchedate(jour_cherche As Date, plage As Range)
Dim cellule As Range
For Each cellule In plage
If cellule = jour_cherche Then
recherchedate = 1
Exit Function
End If
Next
recherchedate = 0
End Function