la variable est une heure

  • Initiateur de la discussion Initiateur de la discussion bbobb
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

bbobb

XLDnaute Occasionnel
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....

Merci d'avance pour vos lumières 🙂

Bonne journée les XLnautes et le forum
Bbobb
 

Pièces jointes

Re : la variable est une heure

Bonjour bbobb,

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.

Edit : salut Pierrot.

A+
 
Re : la variable est une heure

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
bonne journée
Amicalement
Jean Marie
 
Re : la variable est une heure

Re,

On peut aussi utiliser la méthode Find :

Code:
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
A+
 
Re : la variable est une heure

bonjour les amis 🙂🙂🙂🙂

peut être comme cela aussi???

Code:
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"
 
Re : la variable est une heure

Bonjour à tous

Tu peux aussi tester:

Code:
Cells.Find(What:=CDate(Cells(1, 1)), After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Activate
 
Re : la variable est une heure

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... 🙂



Code:
Cells.Find(What:=CDate(Cells(1, 1)), After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Activate


Bonne soirée àtous
Bbobb
 
Re : la variable est une heure

Bonsoir bbobb, à tous,

Essayez:

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..

VB:
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
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
173
Retour