VBA : dysfonctionnement fonction Find : Excel ne trouve pas des valeurs
Résolu/Fermé
GG69
-
6 janv. 2020 à 16:55
eriiic Messages postés 24601 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 25 novembre 2024 - 6 janv. 2020 à 18:16
eriiic Messages postés 24601 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 25 novembre 2024 - 6 janv. 2020 à 18:16
A voir également:
- Fonction find vba
- Fonction si et - Guide
- Fonction moyenne excel - Guide
- Vba attendre 1 seconde ✓ - Forum VB / VBA
- Fonction filtre excel n'existe pas - Forum Excel
- Cette fonction n'est pas disponible actuellement tv lg - Forum Téléviseurs
3 réponses
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
Modifié le 6 janv. 2020 à 17:06
Modifié le 6 janv. 2020 à 17:06
Bonjour,
Le code que tu présente est partiel, on ne sait pas d'où vient Date_mesure
Dans tous les cas lorsqu'on utilise Find, il faut envisager le cas où ce qu'on cherche n'est pas trouvé ! (ici d = Nothing et par conséquence erreur sur d.Row (d est l'objet non défini).
Le code que tu présente est partiel, on ne sait pas d'où vient Date_mesure
Dans tous les cas lorsqu'on utilise Find, il faut envisager le cas où ce qu'on cherche n'est pas trouvé ! (ici d = Nothing et par conséquence erreur sur d.Row (d est l'objet non défini).
eriiic
Messages postés
24601
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
25 novembre 2024
7 242
Modifié le 6 janv. 2020 à 17:55
Modifié le 6 janv. 2020 à 17:55
Bonjour à tous,
De plus .Find est assez spécial (et capricieux) sur les dates.
Avec comme paramètre LookIn:=xlValues (la bien mal nommée...), FIND effectue la recherche dans la propriété TEXT des cellules (c'est-à-dire dans la valeur affichée !).
Il faut rechercher Clng(ta_Date) avec
Ou le plus simple est d'utiliser Equiv():
eric
De plus .Find est assez spécial (et capricieux) sur les dates.
Avec comme paramètre LookIn:=xlValues (la bien mal nommée...), FIND effectue la recherche dans la propriété TEXT des cellules (c'est-à-dire dans la valeur affichée !).
Il faut rechercher Clng(ta_Date) avec
LookIn:=xlFormulasqui ne dépend pas du format d'affichage.
Ou le plus simple est d'utiliser Equiv():
Dim date1 As Date, lig As Variant
date1 = #1/22/2020#
lig = Application.Match(CLng(date1), [A:A], 0)
If IsError(lig) Then MsgBox "date absente"
eric
Bonjour à vous deux et merci pour votre retour rapide.
En fait je n'ai pas prévu le cas ou d= nothing car les dates journalières sont prévues jusqu'à 2060, avec 48 valeurs par jour, d'où la taille du tableau. Du coup il était impossible qu'excel ne trouve pas.
Par contre ces dernières heures j'ai creusé et j'ai résolu mon problème, j'y ai pensé par chance mais c'est TRES étonnant selon moi.
ma macro ne trouvait pas les valeurs car la largueur de la colonne contenant les dates était trop étroite. Ainsi s'affiche uniquement des #####.
J'ai cherché plusieurs heures mais l'élargissement de la cellule a résolu le problème.
Je trouve cela fou car pour moi l'affichage est fait juste pour l'utilisateur et excel doit pouvoir trouver les valeurs peu importe leurs mise en page, mais visiblement non.
Je tiens note de vos remarques en vue d'éventuels futurs blocages et vous remercie pour votre aide.
cordialement
En fait je n'ai pas prévu le cas ou d= nothing car les dates journalières sont prévues jusqu'à 2060, avec 48 valeurs par jour, d'où la taille du tableau. Du coup il était impossible qu'excel ne trouve pas.
Par contre ces dernières heures j'ai creusé et j'ai résolu mon problème, j'y ai pensé par chance mais c'est TRES étonnant selon moi.
ma macro ne trouvait pas les valeurs car la largueur de la colonne contenant les dates était trop étroite. Ainsi s'affiche uniquement des #####.
J'ai cherché plusieurs heures mais l'élargissement de la cellule a résolu le problème.
Je trouve cela fou car pour moi l'affichage est fait juste pour l'utilisateur et excel doit pouvoir trouver les valeurs peu importe leurs mise en page, mais visiblement non.
Je tiens note de vos remarques en vue d'éventuels futurs blocages et vous remercie pour votre aide.
cordialement
eriiic
Messages postés
24601
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
25 novembre 2024
7 242
Modifié le 6 janv. 2020 à 18:17
Modifié le 6 janv. 2020 à 18:17
Ca correspond à ce que je te disais :
Avec comme paramètre LookIn:=xlValues (la bien mal nommée...), FIND effectue la recherche dans la propriété TEXT des cellules (c'est-à-dire dans la valeur affichée !).
Avec comme paramètre LookIn:=xlValues (la bien mal nommée...), FIND effectue la recherche dans la propriété TEXT des cellules (c'est-à-dire dans la valeur affichée !).