Bonjour à tous,
Voilà : je recherche dans une colonne une donnée qui est égale à une variable préalablement définie et qui est une heure.
J'ai joint un petit fichier avec un code qui marche !?!?!?....
Donc le problème vient peut-être du fait que mon fichier original comporte 40000 lignes....
La comparaison d'heures peut poser des problèmes (à cause des décimales).
Il vaut mieux procéder ainsi :
Code:
Sub testH()
Dim t As String, c As Range
t = Format(Cells(1, 1), "h:m:s")
For Each c In Range("A4", Cells(Rows.Count, 1).End(xlUp))
If Format(c, "h:m:s") = t Then
c(1, 2).Select
Exit For
End If
Next
End Sub
Noter qu'en VBA il est généralement inutile de sélectionner.
Bonjour bbobb
Bonjour le fil
Bonjour le forum
histoire de saluer les participants
une autre version Lol
VB:
Sub testH2()
Dim t As Double, c As Range
With Worksheets("Feuil1")
t = .Cells(1, 1)
For Each c In .Range("A4", .Cells(Rows.Count, 1).End(xlUp))
If c.Value = t Then
c.Offset(0, 1).Interior.Color = vbGreen
Exit For
End If
Next
End With
End Sub
Sub testH()
[A:A].NumberFormat = "hh:mm:ss" 'par acquis de conscience...
On Error Resume Next 'si la recherche n'aboutit pas
Range("A3:A" & Rows.Count).Find([A1].Text, , xlValues).Offset(, 1).Select
End Sub
Set a = Range("a4", Cells(Rows.Count, "a").End(xlUp)) _
.Find(What:=[a1].Text, LookIn:=xlValues)
If Not a Is Nothing Then a.Offset(, 1).Select Else MsgBox "pas trouve"
Bonsoir à tous,
Le code ci-dessous proposé par MJ13 fonctionne très bien. Mais j'ai besoin de connaitre le numéro de ligne de la cellule activée... Mes (faibles) compétences en VBA sont insuffisantes...
dim MaColonne as long
Cells.Find(What:=CDate(Cells(1, 1)), After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Activate
MaColonne =ActiveCell.row