Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Problème de date et VBA

5 réponses
Avatar
Alain Lebayle
Bonsoir,
Je ne comprends pas pourquoi cette procédure ne fonctionne pas...
Je vous remercie
Alain

Sub Test()

La_date = Format(Range("D3"), "dd/mm/yyyy")
'La cellule D3 contient une date
With Workbooks("TOTO.xls")
Dim D As Range
For Each D In Range("A8:A300").Cells
If D.Value = La_date Then D.Select
Next
End With
End Sub

5 réponses

Avatar
Daniel.C
La_date = Format(Range("D3"), "dd/mm/yyyy")

Te donne la date au format texte; si tu compares avec des "vraies"
dates, tu n'auras pas d'égalité.
Daniel


Bonsoir,
Je ne comprends pas pourquoi cette procédure ne fonctionne pas...
Je vous remercie
Alain

Sub Test()

La_date = Format(Range("D3"), "dd/mm/yyyy")
'La cellule D3 contient une date
With Workbooks("TOTO.xls")
Dim D As Range
For Each D In Range("A8:A300").Cells
If D.Value = La_date Then D.Select
Next
End With
End Sub


Avatar
michdenis
Bonjour,

Essaie comme ceci :
En supposant que D3 est un format "date" reconnu par Excel.
'--------------------------------
Sub test()

Dim MaDate As Date, C As Range
MaDate = Range("D3")
For Each c In Range("A1:A" & Range("A65536").End(xlUp).Row)
If c.Value = MaDate Then
c.Select
Exit Sub
End If
Next
End Sub
'--------------------------------







"Alain Lebayle" a écrit dans le message de groupe de
discussion :
Bonsoir,
Je ne comprends pas pourquoi cette procédure ne fonctionne pas...
Je vous remercie
Alain

Sub Test()

La_date = Format(Range("D3"), "dd/mm/yyyy")
'La cellule D3 contient une date
With Workbooks("TOTO.xls")
Dim D As Range
For Each D In Range("A8:A300").Cells
If D.Value = La_date Then D.Select
Next
End With
End Sub
Avatar
michdenis
Utilise "Exit For" au lieu de "Exit Sub" pour sortir de la boucle si la
procédure doit exécuter du code à la sortie de la boucle.
Avatar
Alain Lebayle
Bonsoir,
Cela fonctionne parfaitement !!!
Un très grand merci
Bonsoir
Alain


michdenis a écrit :
Bonjour,

Essaie comme ceci :
En supposant que D3 est un format "date" reconnu par Excel.
'--------------------------------
Sub test()

Dim MaDate As Date, C As Range
MaDate = Range("D3")
For Each c In Range("A1:A" & Range("A65536").End(xlUp).Row)
If c.Value = MaDate Then
c.Select
Exit Sub
End If
Next
End Sub
'--------------------------------







"Alain Lebayle" a écrit dans le message de groupe de
discussion :
Bonsoir,
Je ne comprends pas pourquoi cette procédure ne fonctionne pas...
Je vous remercie
Alain

Sub Test()

La_date = Format(Range("D3"), "dd/mm/yyyy")
'La cellule D3 contient une date
With Workbooks("TOTO.xls")
Dim D As Range
For Each D In Range("A8:A300").Cells
If D.Value = La_date Then D.Select
Next
End With
End Sub



Avatar
michdenis
Si ta plage en colonne A:A est grande,
ceci serait beaucoup plus rapide qu'une boucle :

'-----------------------------------
Sub test()
Dim MaDate As Date, C As Range, X As Variant
MaDate = Range("D3")
With Range("A1:A" & Range("A65536").End(xlUp).Row)
X = Application.Match(CLng(MaDate), .Cells, 0)
If Not IsError(X) Then
Range("A" & X).Select
Else
Err.Clear
MsgBox "Date inexistante"
End If
End With
End Sub
'-----------------------------------



"Alain Lebayle" a écrit dans le message de groupe de
discussion :
Bonsoir,
Cela fonctionne parfaitement !!!
Un très grand merci
Bonsoir
Alain


michdenis a écrit :
Bonjour,

Essaie comme ceci :
En supposant que D3 est un format "date" reconnu par Excel.
'--------------------------------
Sub test()

Dim MaDate As Date, C As Range
MaDate = Range("D3")
For Each c In Range("A1:A" & Range("A65536").End(xlUp).Row)
If c.Value = MaDate Then
c.Select
Exit Sub
End If
Next
End Sub
'--------------------------------







"Alain Lebayle" a écrit dans le message de groupe de
discussion :
Bonsoir,
Je ne comprends pas pourquoi cette procédure ne fonctionne pas...
Je vous remercie
Alain

Sub Test()

La_date = Format(Range("D3"), "dd/mm/yyyy")
'La cellule D3 contient une date
With Workbooks("TOTO.xls")
Dim D As Range
For Each D In Range("A8:A300").Cells
If D.Value = La_date Then D.Select
Next
End With
End Sub