Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
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 !
En attendant tu peux essayer avec la fonction Match
Code:
Private Sub CommandButton1_Click()
Dim maDate As Long 'Date
Dim x As Integer
maDate = CDate(Sheets("Tirage").Range("W3"))
Repete:
On Error Resume Next
x = Application.WorksheetFunction.Match(maDate, Worksheets("Update").Columns(1), 0)
On Error GoTo 0
If x > 0 Then
[B11] = Day(Worksheets("Update").Cells(x, 1))
[B12] = Month(Worksheets("Update").Cells(x, 1))
[B13] = Year(Worksheets("Update").Cells(x, 1))
Exit Sub
Else
maDate = maDate + 1
End If
GoTo Repete
End Sub
Un autre solution pour trouver la premiere date, par formule
=MIN(SI(Update!A1:A1000>0;Update!A1:A1000))
que tu pourras ensuite décomposer en jour / mois / année , dans ton classeur.
Il doit y avoir quelque chose que je n'ais pas saisie car si je met 21/12/2005 en W3, je retrouve bien la décomposition dans B11 12 13 comme indiqué dans ton fichier. (j'ai Excel 2003).
en consultant le site contenant la source externe, je me demande si le problème ne viendrait pas d'un format Date anglais
à tester:
Code:
Repete:
Madate = Format(CDate(Sheets("Tirage").Range("W3").Value), "mm/dd/yyyy")
If Not Sheets("Update").Cells.Find(Madate) Is Nothing Then
[B11] = Day(Sheets("Tirage").Range("W3"))
[B12] = Month(Sheets("Tirage").Range("W3"))
[B13] = Year(Sheets("Tirage").Range("W3"))
Exit Sub
Else
Sheets("Tirage").Range("W3") = Sheets("Tirage").Range("W3") + 1
End If
GoTo Repete
Private Sub CommandButton1_Click()
Dim MaDate As String
Dim MaCell As Range
Repete:
MaDate = Format(Sheets("Tirage").Range("W3"), "Short Date")
Set MaCell = Sheets("Update").Cells.Find(What:=CDate(MaDate),LookAt:=xlWhole)
If Not MaCell Is Nothing Then
[B11] = Day(Range("W3"))
[B12] = Month(Range("W3"))
[B13] = Year(Range("W3"))
Set MaCell = Nothing
Exit Sub
Else
Sheets("Tirage").Range("W3") = Sheets("Tirage").Range("W3") + 1
Set MaCell = Nothing
End If
GoTo Repete
End Sub
Pierrot93 met 01-01-2004 en w3 et lance la recherche tu auras 02-12-2005 comme résultat
Je pense que l'origine du problème provient avant tout du type de donnée recherchée qui est une Date. Sauf erreur, l'affichage de "21/12/2005" est essentiellement dû au format de cellule, la "date" en interne étant représentée en réalité "38707", j'imagine que Find perd un peu pied dans ce cas...
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.