Bonjour à tous,
Je viens soumettre un problème qui me fait m'arracher les cheveux à mon poste depuis quelques temps et qui demeure complètement insolvable...
Une procédure qui fonctionnait auparavant sans problème ne remplissait plus son rôle. Après investigation, j'ai trouvé qu'une instruction range.Find renvoyait Nothing
Je ponds environ 3-4 versions différentes d'un même fichier excel tous les jours. J'ai donc repris les versions antérieurs sur lesquelles la procédure fonctionnait parfaitement. Ô surprise, même résultat. Même avec les versions vieilles de plusieurs jours où je peux mettre ma main à couper que ça marchait !
Voici le morceau de code incriminé :
Tout devrait pourtant fonctionner à merveille comme en témoigne ce morceau de code que j'ai rajouté juste en dessous pour effectuer un test :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Public Function recherche_data_par_UID(feuille As Integer) As Range Dim plage_recherche As Range Dim occurence As Range Dim what As Long 'Recherche des plages correspondant à l'UID Set plage_recherche = Application.Intersect(ThisWorkbook.Worksheets(feuille).Columns(1), ThisWorkbook.Worksheets(feuille).UsedRange) UID = ThisWorkbook.Worksheets("Recherche_collab").Range("C2").Value Set occurence = plage_recherche.Find(what:=UID, Lookat:=xlWhole, MatchCase:=False) [...]
Qui ressort comme résultat sur la console :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Debug.Print plage_recherche.Address(external:=True) Debug.Print ThisWorkbook.Worksheets("Data_ID").Cells(125, 1).Address(external:=True) Debug.Print UID = ThisWorkbook.Worksheets("Data_ID").Cells(125, 1).Value Debug.Print plage_recherche.Find(what:=UID) Is Nothing
La cellule(1,125) appartient bien à la plage, elle a bien la même valeur, mais le résultat de la méthode Find est Nothing...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 '[BDD Collaborateurs V6.0.xls]Data_ID'!$A$1:$A$1001 '[BDD Collaborateurs V6.0.xls]Data_ID'!$A$125 Vrai Vrai
Voilà... Je pense que le problème vient de l'environnement, mais je ne suis pas expert en VBA donc je ne m'en sors pas...
En espérant que quelqu'un ait la bonté de me sortir de là, je vous souhaite une bonne soirée
Partager