Problème de date et VBA

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Daniel.C
Le #21232921
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


michdenis
Le #21233051
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" 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
michdenis
Le #21233041
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.
Alain Lebayle
Le #21233271
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" 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



michdenis
Le #21234171
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" 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" 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



Publicité
Poster une réponse
Anonyme