Instruction Find
Salut,
Je galère chaque fois que j'utilise cette fonction mais en tatonnant j'arrive à la faire tourner correctement. Mais là je sèche.
J'importe une page internet dans une feuille Excel pour y récupérer quelques données. Je procède en 2 étapes :
Set ListeCours = Sheets("Temp").Columns(1).Find("Historique 5 jours", LookIn:=xlValues)Pour chercher l'emplacement des données que je veux récupérer (ce n'est pas fixe). Ca fonctionne, la chaine de caractères "Historique 5 jours" est bien identifiée.
Ensuite je cherche une donnée en particulier (celle du jour) avec :
Set ColonneCours = Sheets("Temp").Rows(ListeCours.Row + 1).Find(DateAReporter, LookIn:=xlValues)
Cours = Sheets("Temp").Cells(ListeCours.Row + 2, ColonneCours.Column)Et là la fonction Find me renvoie un Nothing, alors que la variable DateAReporter est bien dans la ligne ListeCours.Row + 1.
Aussi bien la variable DateAReporter que la valeur que je cherche sont des dates (Format Variant/Date dans l'espion).
Je mets un extrait du fichier en copie si quelqu'un se penche sur la question.
Merci d'avance.
Manu
Bonsoir Manu31,
Je te propose une alternative à l'utilisation de Find
Sub test()
Dim DateAReporter As Date
Dim Cours As String
Dim vLigLC As Variant
Dim vColDAR As Variant
With Sheets("Temp")
DateAReporter = DateSerial(2023, 7, 28)
'Recherche du tableau de l'historique à 5 jours
vLigLC = Application.Match("Historique 5 jours", Sheets("Temp").Columns(1), 0)
If IsError(vLigLC) = False Then
'Recherche du cours du jour
vColDAR = Application.Match(CLng(DateAReporter), Sheets("Temp").Rows(vLigLC + 1), 0)
If IsError(vColDAR) = False Then
Cours = Sheets("Temp").Cells(vLigLC + 2, vColDAR)
Else
MsgBox "...."
End If
Else
MsgBox "...."
End If
End With
End SubCdlt,
Cylfo
Bonjour,
Une autre proposition.
Cdlt.
Sub test_2()
Dim rw As Variant, dLastValue As Double
With Worksheets("Temp")
rw = Application.Match("Historique 5 jours ", .Columns(1), 0)
If IsError(rw) Then
MsgBox "Oups !...", 64, "Information"
Else
dLastValue = .Cells(rw, 1).Offset(2, 5).Value
MsgBox "Der. : " & dLastValue
End If
End With
End Sub