Recherche sous VBA date Heure en paramètre

Bonjour

Petit nouveau à ce forum

je galère actuellement pour automatiser une recherche :

Ex dans la feuil1 j'ai une colone de date-heure chronologique avec des paramètres sur les autres colonnes

sur une autre feul2, j'ai des date heure précises;

Il faut que je recherche par macro les paramètres à +- 60seconde de la feuil2 et que je les copies sur cette feuille 2

Lorsque je mets en dure la date dans une variable cela fonctionne

Ex :

Hvol = "10:55:05"

Columns("A:A").Select

Selection.Find(What:=("Hvol"), After:=ActiveCell, LookIn:=xlFormulas, _

LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _

MatchCase:=False, SearchFormat:=False).Activate

Mais si je veux chercher directement des valeurs qui se trouvent sur la feuil2, il ne comprend pas le format

Sheets(feuil2).Select

Hvol = Range("A5").Select

Sheets(feuil1).Select

Columns("A:A").Select

Selection.Find(What:=("Hvol"), After:=ActiveCell, LookIn:=xlFormulas, _

LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _

MatchCase:=False, SearchFormat:=False).Activate

Merci à vous

Ps je n'arrive pas à joindre le ficher

Bonjour Dennys32,

C'est parce que tu mets en variable une sélection de cellule (ce qui devrait te retourner Vrai). Essaie plutôt :

Hvol = Sheets("feuil2").Range("A5")

Tu vois aussi que dans ce cas il n'est pas utile de sélectionner la feuil2 au préalable. En règle générale, évite les Sheets("XXX").Select, ça ralentit le code.

Un autre point, dans ton cas, tu as oublié de mettre le nom de la feuille entre parenthèses.

Et pourquoi mettre ta variable Hvol entre guillemets et parenthèses

Ton code optimisé :

Hvol = Sheets("feuil2").Range("A5")
Sheets("feuil1").Select
Columns("A:A").Find(What:=Hvol, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate

Merci au moins le passage de paramètre fonctionne si la cellule est du type standard, mais ici, ce sont des heures & là il plante toujours

Voici mon code :

Hvol = Sheets("Feuil2").Range("A3")

MsgBox (Hvol)

Sheets("Feuil1").Select

Range("A2:A21").Select

Selection.Find(What:=Hvol, After:=ActiveCell, LookIn:=xlFormulas, LookAt _

:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _

False, SearchFormat:=False).Activate

ActiveCell.Offset(-5, 2).Range("A1:A11").Select

Application.CutCopyMode = False

Selection.Copy

Sheets("Feuil2").Select

Range("I4").Select

ActiveSheet.Paste

encore une fois merci, je continue de creuser

Il faut dire à quelle ligne il plante et quelle est le message retourné !

Et à tout hasard comme ça ?

Hvol = TimeValue(Sheets("Feuil2").Range("A3"))

OK merci à vous cela fonctionne

entre temps, j'ai déclaré :

Dim Hvol As Date

sinon il cherchait un nombre pas une date

A+

Rechercher des sujets similaires à "recherche vba date heure parametre"