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 :

pb avec un find [XL-2000]


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé Avatar de zandru
    Homme Profil pro
    Ingénieur conception mécanique
    Inscrit en
    Mars 2008
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur conception mécanique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2008
    Messages : 507
    Par défaut pb avec un find
    Bonjour,

    déjà le code qui pose problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    With Worksheets(nomfeuille)
        'code divers
        Dim lignefaccom As Integer
        lignefaccom = 13
        For i = 0 To (faccreation.Listblavoir.ListCount - 1)
            If .Range("E:E").Find(what:=Workbooks(faccreation.Listblavoir.List(i) & ".xls").ActiveSheet.Cells(ligneblcom, 5), after:=.Cells(1, 5)) Is Nothing Then
                'traitement
            End If
        Next
    end with
    Mon soucis est que le find ne semble pas fonctionner.
    quelque précision :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks(faccreation.Listblavoir.List(i) & ".xls").ActiveSheet.Cells(ligneblcom, 5), after:=.Cells(1, 5)
    contient "com av1" et je le recherche sur la feuille Worksheets(nomfeuille), colonne E.
    si il n'y est pas je veux qu'il fasse le traitement et si il y est déjà qu'il passe à la suite.
    Le problème est que si il y est, ce code entre tout de même dans le if

    Pourquoi ???

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

    Peut etre parce qu'il ne cherche pas comme il faut.

    Si tu cherches "com av1" precisement ajoute l'option Si tu cherches "com av1" quelque part dans les cellules ajoutes l'option Et eventuellement pour etre sur de chercher dans la valeur et non la formule.
    (Find utilise les options de la dernier recherche dans excel si on ne change pas les options dans la macro)

    Voila quelques pistes...

    ++
    Minick

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut zandru et le forum
    essaie avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks(faccreation.Listblavoir.List(i) & ".xls").Sheets("nom de feuille").Cells(ligneblcom, 5), after:=.Cells(1, 5)
    Les paramètres d'Excel sont mis à jour de façon très particulière et je pense qu'utiliser Activesheet est une erreur.
    A+

  4. #4
    Membre éclairé Avatar de zandru
    Homme Profil pro
    Ingénieur conception mécanique
    Inscrit en
    Mars 2008
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur conception mécanique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2008
    Messages : 507
    Par défaut
    Merci pour vos réponses.

    j'ai complété les propriétés du find comme tu me l'a conseillé Minick, mais cela ne change rien.

    Gorfael, je ne peux pas utiliser Sheets("nom de feuille") car je ne connais pas le nom de la feuille. Par contre je sais que le fichier ne contient qu'une et unique feuille, c'est pour cela que j'utilise ActiveSheet.

    Par contre je me demande si le fait que, sur certaine ligne dont celles qui contiennent ce que je cherche, la cellule colonne E soit fusionné avec les cellules des colonnes F et G gène le find ?

  5. #5
    Membre chevronné
    Inscrit en
    Décembre 2003
    Messages
    434
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 434
    Par défaut
    Salut,

    Je pense que le probleme vient effectivement de la fusion de cellules
    (Personnellement je ne l'utilise jamais, ca pause souvent des petits probleme...)

    Donc si tu ne n'as pas "com av1" dans les colonnes F-G etend la plage de recherche a ces colonnes et ca devrait etre bon.

    ++
    Minick

  6. #6
    Membre éclairé Avatar de zandru
    Homme Profil pro
    Ingénieur conception mécanique
    Inscrit en
    Mars 2008
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur conception mécanique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2008
    Messages : 507
    Par défaut
    Bonjour,

    merci de votre aide, le problème était bien la fusion des cellules.
    J'ai donc étendu le find sur les colonnes F et G, et ça marche

    Merci encore !

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

Discussions similaires

  1. Rechercher une valeur absolue avec fonction Find
    Par Jeanvaljean44 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/09/2008, 08h25
  2. erreur avec iterator find
    Par befalimpertinent dans le forum SL & STL
    Réponses: 3
    Dernier message: 05/09/2007, 09h19
  3. Problème de boucle avec un find
    Par mick77 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 21/06/2007, 16h46
  4. [Data] probleme avec getHibernateTemplate.find()
    Par Tauros_king dans le forum Spring
    Réponses: 2
    Dernier message: 22/03/2007, 11h05
  5. Probleme de perf avec File::Find::name;
    Par Ludo167 dans le forum Modules
    Réponses: 6
    Dernier message: 14/07/2004, 11h31

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