1 pièce(s) jointe(s)
Problème avec Find lors d'une éxécution automatique
Bonjour ,
J'ai un problème avec Find, qui marche lorsque j'appelle la fonction en debug, mais pas en calcul automatique.
1/ Je déroule la fonction Test dans l'éditeur VBA, la fonction Test2 fonctionne correctement, la date passée en argument est trouvée
2/ Dans une cellule de ma 5ième feuille, je mets =Test2(B3;"Date2010"). La date contenue dans B3 n'est pas trouvée, bien que sa valeur soit bien présente dans la plage "Date2010"
Si quelqu'un avait une piste ...
Merci !!!
PS: je viens de rajouter un fichier de test
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
|
Sub Test()
Dim i As Double
i = Test2(ThisWorkbook.Sheets(5).Range("B3"), "Date2010")
End Sub
Function Test2(dateDebut As Date, sPlageDate As String) As Double
Application.Volatile
Test2 = 14
Dim rCellTest As Range
For Each rCellTest In Range(sPlageDate)
' pour vérification de la plage
Debug.Print "Date " & rCellTest
Next rCellTest
Dim rCellDebut As Range
Set rCellDebut = Range(sPlageDate).Find(What:=dateDebut, lookat:=xlWhole)
If (rCellDebut Is Nothing) Then
Debug.Print "Date non trouvée dans la plage " & sPlageDate & " Debut : " _
& dateDebut
Exit Function
End If
Test2 = 15
End Function |
Range.Find entre deux classeurs
J'essaye de chercher une valeur dans un autre classeur, récupérer une donnée e t revenir sur le premier classeur.
Avec une synthaxe abituelle:
Code:
1 2 3 4 5
| Workbooks("classeur2").Activate
Worksheets("Feuil1").Activate
With Range("B:B")
Set c=.Find(ValeurRecherché, LookIn:=xlValues)
'.... |
En exécutant le programme pas à pas, la éthode Find trouve la valeur recherché sans problème.
Maintenant, en appelant le programme par bouton la méthode Find plante.
J'ai même essayé de changer et de mettre:
Code:
Set c=Workbooks("classeur2").Sheets(1).Range("B1:B900").Find(ValeurRecherché, LookIn:=xlValues)
Ca ne marche pas, j'ai intégré les données du deuxième classeur dans le premier et puis là ca marche.
Je ne sais pas si quelqu'un a une explication, qu'est ce qui fait que la méthode find entre deux classeurs retourne une valeur Nothing.
Merci, +++
LabChNe