Bonsoir ttes et ts
Encore un pb de date
çà coince à la 2ième ligne sauf si je formate la plage en standard ou
nombre, avec dte non pas "as Date" mais "as Double". je souhaite garder la
plage formatée en Date, je cherche l'astuce.
dte = Evaluate("Max(feuil1!A18:A29)") 'en pas à pas dte affiche 01/12/03
derl = Sheets("Feuil1").[A18:A29].Find(dte, LookIn:=xlValue).Row
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Daniel.M
Salut Frédo,
Dans une ficelle de six mois (environ), Denis (de même que d'autres) faisait part des problèmes de recherche selon qu'on faisait varier le format des dates.
La solution que je préfère est de convertir en Long et de faire un Match() ensuite. Ça fonctionne peu importe les conventions/formats de dates. La méthode FIND ne pourra pas t'assurer de cela.
Dim dte As Date Dim derL As Variant
dte = Application.Max(Worksheets("Feuil1").Range("A18:A29")) derL = Application.Match(CLng(dte), _ Worksheets("Feuil1").Range("A18:A29"), 0) If IsError(derL) Then 'msgbox "Pas Trouvé" ' on gère l'erreur comme on veut! Else derL = derL + 17 ' Première ligne doit être = 18 End If
Salutations,
Daniel M.
"Frédo P." wrote in message news:3fcb8929$0$2354$
Bonsoir ttes et ts Encore un pb de date çà coince à la 2ième ligne sauf si je formate la plage en standard ou nombre, avec dte non pas "as Date" mais "as Double". je souhaite garder la plage formatée en Date, je cherche l'astuce.
dte = Evaluate("Max(feuil1!A18:A29)") 'en pas à pas dte affiche 01/12/03 derl = Sheets("Feuil1").[A18:A29].Find(dte, LookIn:=xlValue).Row
-- Fred
Salut Frédo,
Dans une ficelle de six mois (environ), Denis (de même que d'autres) faisait
part des problèmes de recherche selon qu'on faisait varier le format des dates.
La solution que je préfère est de convertir en Long et de faire un Match()
ensuite.
Ça fonctionne peu importe les conventions/formats de dates. La méthode FIND ne
pourra pas t'assurer de cela.
Dim dte As Date
Dim derL As Variant
dte = Application.Max(Worksheets("Feuil1").Range("A18:A29"))
derL = Application.Match(CLng(dte), _
Worksheets("Feuil1").Range("A18:A29"), 0)
If IsError(derL) Then
'msgbox "Pas Trouvé" ' on gère l'erreur comme on veut!
Else
derL = derL + 17 ' Première ligne doit être = 18
End If
Salutations,
Daniel M.
"Frédo P." <fredpost@free.fr> wrote in message
news:3fcb8929$0$2354$626a54ce@news.free.fr...
Bonsoir ttes et ts
Encore un pb de date
çà coince à la 2ième ligne sauf si je formate la plage en standard ou
nombre, avec dte non pas "as Date" mais "as Double". je souhaite garder la
plage formatée en Date, je cherche l'astuce.
dte = Evaluate("Max(feuil1!A18:A29)") 'en pas à pas dte affiche 01/12/03
derl = Sheets("Feuil1").[A18:A29].Find(dte, LookIn:=xlValue).Row
Dans une ficelle de six mois (environ), Denis (de même que d'autres) faisait part des problèmes de recherche selon qu'on faisait varier le format des dates.
La solution que je préfère est de convertir en Long et de faire un Match() ensuite. Ça fonctionne peu importe les conventions/formats de dates. La méthode FIND ne pourra pas t'assurer de cela.
Dim dte As Date Dim derL As Variant
dte = Application.Max(Worksheets("Feuil1").Range("A18:A29")) derL = Application.Match(CLng(dte), _ Worksheets("Feuil1").Range("A18:A29"), 0) If IsError(derL) Then 'msgbox "Pas Trouvé" ' on gère l'erreur comme on veut! Else derL = derL + 17 ' Première ligne doit être = 18 End If
Salutations,
Daniel M.
"Frédo P." wrote in message news:3fcb8929$0$2354$
Bonsoir ttes et ts Encore un pb de date çà coince à la 2ième ligne sauf si je formate la plage en standard ou nombre, avec dte non pas "as Date" mais "as Double". je souhaite garder la plage formatée en Date, je cherche l'astuce.
dte = Evaluate("Max(feuil1!A18:A29)") 'en pas à pas dte affiche 01/12/03 derl = Sheets("Feuil1").[A18:A29].Find(dte, LookIn:=xlValue).Row
-- Fred
Vincent.
Bonsoir Entre la première et la deuxième, ajoute : dte = FormatDateTime(DateValue(dte),"dd/mm/yyyy") de sorte que la date a cherché soit écrité exactement de la même façon dans la variable dte et dans la barre de formule d'XL... A adapter donc ! A+
V.
-----Message d'origine----- Bonsoir ttes et ts Encore un pb de date çà coince à la 2ième ligne sauf si je formate la plage en standard ou
nombre, avec dte non pas "as Date" mais "as Double". je souhaite garder la
plage formatée en Date, je cherche l'astuce.
dte = Evaluate("Max(feuil1!A18:A29)") 'en pas à pas dte affiche 01/12/03
Bonsoir
Entre la première et la deuxième, ajoute :
dte = FormatDateTime(DateValue(dte),"dd/mm/yyyy")
de sorte que la date a cherché soit écrité exactement de
la même façon dans la variable dte et dans la barre de
formule d'XL...
A adapter donc !
A+
V.
-----Message d'origine-----
Bonsoir ttes et ts
Encore un pb de date
çà coince à la 2ième ligne sauf si je formate la plage en
standard ou
nombre, avec dte non pas "as Date" mais "as Double". je
souhaite garder la
plage formatée en Date, je cherche l'astuce.
dte = Evaluate("Max(feuil1!A18:A29)") 'en pas à pas dte
affiche 01/12/03
Bonsoir Entre la première et la deuxième, ajoute : dte = FormatDateTime(DateValue(dte),"dd/mm/yyyy") de sorte que la date a cherché soit écrité exactement de la même façon dans la variable dte et dans la barre de formule d'XL... A adapter donc ! A+
V.
-----Message d'origine----- Bonsoir ttes et ts Encore un pb de date çà coince à la 2ième ligne sauf si je formate la plage en standard ou
nombre, avec dte non pas "as Date" mais "as Double". je souhaite garder la
plage formatée en Date, je cherche l'astuce.
dte = Evaluate("Max(feuil1!A18:A29)") 'en pas à pas dte affiche 01/12/03
Ah! Voila ! J'ai essayé aussi avec Match mais il me manquait le CLng Merci Daniel -- Fred
"Daniel.M" a écrit dans le message de news:
Salut Frédo,
Dans une ficelle de six mois (environ), Denis (de même que d'autres) faisait
part des problèmes de recherche selon qu'on faisait varier le format des dates.
La solution que je préfère est de convertir en Long et de faire un Match() ensuite. Ça fonctionne peu importe les conventions/formats de dates. La méthode FIND ne
pourra pas t'assurer de cela.
Dim dte As Date Dim derL As Variant
dte = Application.Max(Worksheets("Feuil1").Range("A18:A29")) derL = Application.Match(CLng(dte), _ Worksheets("Feuil1").Range("A18:A29"), 0) If IsError(derL) Then 'msgbox "Pas Trouvé" ' on gère l'erreur comme on veut! Else derL = derL + 17 ' Première ligne doit être = 18 End If
Salutations,
Daniel M.
"Frédo P." wrote in message news:3fcb8929$0$2354$
Bonsoir ttes et ts Encore un pb de date çà coince à la 2ième ligne sauf si je formate la plage en standard ou nombre, avec dte non pas "as Date" mais "as Double". je souhaite garder la
plage formatée en Date, je cherche l'astuce.
dte = Evaluate("Max(feuil1!A18:A29)") 'en pas à pas dte affiche 01/12/03 derl = Sheets("Feuil1").[A18:A29].Find(dte, LookIn:=xlValue).Row
-- Fred
Ah! Voila !
J'ai essayé aussi avec Match mais il me manquait le CLng
Merci Daniel
--
Fred
"Daniel.M" <prenom.maher@bigfoot.inutil.com> a écrit dans le message de
news: uQAiF3DuDHA.3496@TK2MSFTNGP11.phx.gbl...
Salut Frédo,
Dans une ficelle de six mois (environ), Denis (de même que d'autres)
faisait
part des problèmes de recherche selon qu'on faisait varier le format des
dates.
La solution que je préfère est de convertir en Long et de faire un Match()
ensuite.
Ça fonctionne peu importe les conventions/formats de dates. La méthode
FIND ne
pourra pas t'assurer de cela.
Dim dte As Date
Dim derL As Variant
dte = Application.Max(Worksheets("Feuil1").Range("A18:A29"))
derL = Application.Match(CLng(dte), _
Worksheets("Feuil1").Range("A18:A29"), 0)
If IsError(derL) Then
'msgbox "Pas Trouvé" ' on gère l'erreur comme on veut!
Else
derL = derL + 17 ' Première ligne doit être = 18
End If
Salutations,
Daniel M.
"Frédo P." <fredpost@free.fr> wrote in message
news:3fcb8929$0$2354$626a54ce@news.free.fr...
Bonsoir ttes et ts
Encore un pb de date
çà coince à la 2ième ligne sauf si je formate la plage en standard ou
nombre, avec dte non pas "as Date" mais "as Double". je souhaite garder
la
plage formatée en Date, je cherche l'astuce.
dte = Evaluate("Max(feuil1!A18:A29)") 'en pas à pas dte affiche 01/12/03
derl = Sheets("Feuil1").[A18:A29].Find(dte, LookIn:=xlValue).Row
Ah! Voila ! J'ai essayé aussi avec Match mais il me manquait le CLng Merci Daniel -- Fred
"Daniel.M" a écrit dans le message de news:
Salut Frédo,
Dans une ficelle de six mois (environ), Denis (de même que d'autres) faisait
part des problèmes de recherche selon qu'on faisait varier le format des dates.
La solution que je préfère est de convertir en Long et de faire un Match() ensuite. Ça fonctionne peu importe les conventions/formats de dates. La méthode FIND ne
pourra pas t'assurer de cela.
Dim dte As Date Dim derL As Variant
dte = Application.Max(Worksheets("Feuil1").Range("A18:A29")) derL = Application.Match(CLng(dte), _ Worksheets("Feuil1").Range("A18:A29"), 0) If IsError(derL) Then 'msgbox "Pas Trouvé" ' on gère l'erreur comme on veut! Else derL = derL + 17 ' Première ligne doit être = 18 End If
Salutations,
Daniel M.
"Frédo P." wrote in message news:3fcb8929$0$2354$
Bonsoir ttes et ts Encore un pb de date çà coince à la 2ième ligne sauf si je formate la plage en standard ou nombre, avec dte non pas "as Date" mais "as Double". je souhaite garder la
plage formatée en Date, je cherche l'astuce.
dte = Evaluate("Max(feuil1!A18:A29)") 'en pas à pas dte affiche 01/12/03 derl = Sheets("Feuil1").[A18:A29].Find(dte, LookIn:=xlValue).Row
-- Fred
AV
Salut Daniel,
La solution que je préfère est de convertir en Long
Application.Match(dte * 1..... Me semble que ça permet d'éviter des surprises (erreur type) si par hasard la date affichée est 31-déc alors que la réalité est qque chose comme ça : 31/12/2003 12:35:15 Ou plus académique (?) : Match(CDbl(dte)......
C'était pour 2 sous TTC ;-) AV
Salut Daniel,
La solution que je préfère est de convertir en Long
Application.Match(dte * 1.....
Me semble que ça permet d'éviter des surprises (erreur type) si par hasard la
date affichée est 31-déc alors que la réalité est qque chose comme ça :
31/12/2003 12:35:15
Ou plus académique (?) : Match(CDbl(dte)......
La solution que je préfère est de convertir en Long
Application.Match(dte * 1..... Me semble que ça permet d'éviter des surprises (erreur type) si par hasard la date affichée est 31-déc alors que la réalité est qque chose comme ça : 31/12/2003 12:35:15 Ou plus académique (?) : Match(CDbl(dte)......
C'était pour 2 sous TTC ;-) AV
Daniel.M
Salut Alain,
:-) Tu as bien raison. La conversion en Double est plus générale et permet de traiter les cas avec des heures.
Salutations,
Daniel M.
"AV" wrote in message news:
Salut Daniel,
La solution que je préfère est de convertir en Long
Application.Match(dte * 1..... Me semble que ça permet d'éviter des surprises (erreur type) si par hasard la date affichée est 31-déc alors que la réalité est qque chose comme ça : 31/12/2003 12:35:15 Ou plus académique (?) : Match(CDbl(dte)......
C'était pour 2 sous TTC ;-) AV
Salut Alain,
:-)
Tu as bien raison. La conversion en Double est plus générale et permet de
traiter les cas avec des heures.
Salutations,
Daniel M.
"AV" <alain.vallon@wanadoo.fr> wrote in message
news:uxB70GJuDHA.1888@TK2MSFTNGP10.phx.gbl...
Salut Daniel,
La solution que je préfère est de convertir en Long
Application.Match(dte * 1.....
Me semble que ça permet d'éviter des surprises (erreur type) si par hasard la
date affichée est 31-déc alors que la réalité est qque chose comme ça :
31/12/2003 12:35:15
Ou plus académique (?) : Match(CDbl(dte)......
:-) Tu as bien raison. La conversion en Double est plus générale et permet de traiter les cas avec des heures.
Salutations,
Daniel M.
"AV" wrote in message news:
Salut Daniel,
La solution que je préfère est de convertir en Long
Application.Match(dte * 1..... Me semble que ça permet d'éviter des surprises (erreur type) si par hasard la date affichée est 31-déc alors que la réalité est qque chose comme ça : 31/12/2003 12:35:15 Ou plus académique (?) : Match(CDbl(dte)......