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 :

Méthode Find qui gère mal le texte [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 12
    Par défaut Méthode Find qui gère mal le texte
    Bonjour,

    J'ai un soucis avec ma méthode Find. En effet, j'ai des cellules qui se ressemblent.

    Par exemple, j'ai : "Heure d'arrivée" ; "Heure de sortie" ; "Code sortie" ...

    valeur correspond à la variable recherchée dans la plage de donnée (qui est sur une colonne)
    trouvee correspond à une précédente variable recherchée dans une autre feuille.

    Aperçu du code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
     
            Set valeur = .Find(What:="Heure d'arrivée", LookIn:=xlValues, LookAt:=xlWhole).Offset(0, 2)
                If valeur Is Nothing Then
                GoTo a2
            Else:
                valeur = trouvee.Offset(0, -2)
            End If
    a2:
     
            Set valeur = .Find(What:="Heure de sortie", LookIn:=xlValues, LookAt:=xlWhole).Offset(0, 2)
                If valeur Is Nothing Then
                GoTo a3
            Else:
                valeur = trouvee.Offset(0, -2)
            End If
    a3:
     
            Set valeur = .Find(What:="Code sortie", LookIn:=xlValues, LookAt:=xlWhole).Offset(0, 2)
                If valeur Is Nothing Then
                GoTo a4
            Else:
                valeur = trouvee.Offset(0, -1)
            End If
    a4:
    Il va me renseigner dans la cellule Heure d'entrée, l'heure de sortie.
    De même pour Code sortie qui remplacera Heure de sortie.


    Je voudrais simplement qu'il prenne tout le contexte pour qu'il n'y est pas cette erreur.

    Je vous en remercie par avance. Cordialement,
    Arnaud

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
        Set Valeur = .Find(What:="Heure d'arrivée", LookIn:=xlValues, LookAt:=xlWhole)
        If Not Valeur Is Nothing Then
            Valeur.Offset(, 2) = Trouvee.Offset(, -2)
        Else
            Set Valeur = .Find(What:="Heure de sortie", LookIn:=xlValues, LookAt:=xlWhole)
            If Not Valeur Is Nothing Then
                Valeur.Offset(, 2) = Trouvee.Offset(, -2)
            Else
                Set Valeur = .Find(What:="Code sortie", LookIn:=xlValues, LookAt:=xlWhole)
                If Not Valeur Is Nothing Then
                    Valeur.Offset(, 2) = Trouvee.Offset(, -1)
                End If
            End If
        End If

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 12
    Par défaut
    Merci mais cela ne marche pas.

    Il ne rempli que le premier champs. j'ai essayé d'enlever les Else mais le problème reste le même.

    D'où peut venir le problème ?

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Le code que j'ai proposé ne va surement pas donner le résultat consenti puisque l'explication de la problématique était sommaire et personnellement je n'ai pas deviné la disposition de ton fichier.

    Donc, je devais préciser que l'extrait était simplement pour éviter les goto qui assombrissent ton code

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 12
    Par défaut
    D'accord, Merci, c'est vrai que le code est moins lourd.

    Et veuillez m’excuser, je vais détailler :

    J’ai dans une première feuille un tableau dans lequel je cherche une valeur dans une colonne.
    C’est un code unique et il n’y a pas de doublons.
    Cette valeur correspond à trouvee

    Puis j’ai dans une seconde feuille des termes dans la première colonne. Ces termes peuvent être modifiés dans le sens où ils peuvent être présents ou non.
    Ce que je veux faire, c’est : s’il y a présence du terme,
    alors prendre la valeur correspondante située dans la première feuille et la décaler de deux colonnes par rapport au terme.
    Si le terme n'est pas présent, alors ne rien faire.

  6. #6
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Qu’entends tu par "termes" de la seconde feuille.

    Explicitement, un fichier exemple est nécessaire quand l'explication reste sommaire pour quelqu'un qui n'a pas le fichier sous les yeux.

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

Discussions similaires

  1. Tri décroissant qui gère différement nombre et texte
    Par cedrick21 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 29/01/2013, 11h09
  2. Find qui find mal
    Par Daranc dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/10/2009, 09h00
  3. Méthode getSize() qui ne marche pas
    Par mush_H dans le forum Agents de placement/Fenêtres
    Réponses: 15
    Dernier message: 20/03/2005, 01h29
  4. [SQL] une requete qui fait mal a la tete
    Par MailOut dans le forum Langage SQL
    Réponses: 7
    Dernier message: 07/02/2005, 16h22

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