IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Soucis avec la méthode Find [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 6
    Points : 9
    Points
    9
    Par défaut Soucis avec la méthode Find
    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é :

    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)
    [...]
    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
     
    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
    Qui ressort comme résultat sur la console :

    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
    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...

    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

  2. #2
    Membre confirmé
    Inscrit en
    Décembre 2003
    Messages
    434
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 434
    Points : 547
    Points
    547
    Par défaut
    Salut,

    Essaie de modifier la recherche comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set occurence = plage_recherche.Find(what:=UID, LookIn:=xlValues,  Lookat:=xlWhole, MatchCase:=False)

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 6
    Points : 9
    Points
    9
    Par défaut
    Merci Minick, mais j'avais déjà essayé sans succès

    CEPENDANT la méthode refonctionne (SANS avoir modifié le code)...

    Je suis curieux de savoir pourquoi si quelqu'un a une explication (on sait jamais, des fois que ça recommence...)

  4. #4
    Membre confirmé
    Inscrit en
    Décembre 2003
    Messages
    434
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 434
    Points : 547
    Points
    547
    Par défaut
    Re,

    Bizarre si tu n'as rien change, peut etre un peut moins si tu as
    fait un test de recherche dans excel directement et en verifiant
    et ajustant les parametres de recherche.

    Tu le sais peut etre deja mais Find conserve toujours les derniers
    parametres d'utilisation.
    Apres une recherche dans excel (avec un parametrage particulier)
    tous les parametres que tu ne forceras pas en VBA resteront comme
    lors de la recherche dans excel.

    Peut etre une piste...

    ++

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 6
    Points : 9
    Points
    9
    Par défaut
    Effectivement ça semble être ça
    J'avais complètement oublié cet aspect du fonctionnement de Find
    Merci bien

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème avec la méthode find et find next
    Par Sylvie66 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 10/05/2015, 17h33
  2. Souci avec la méthode AutoFitBehavior en vba dans excel
    Par ftrouve dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 07/05/2014, 18h01
  3. Problème avec ma méthode Find
    Par cdurep dans le forum Excel
    Réponses: 2
    Dernier message: 04/03/2014, 10h30
  4. [XL-2010] Problème avec la méthode find d'un objet Range dans une zone filtrée
    Par stargates01 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 28/02/2014, 23h27
  5. ImageMagick : Soucis avec la méthode Resample
    Par Premium dans le forum Modules
    Réponses: 1
    Dernier message: 14/01/2009, 11h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo