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 :

RechercheV avec condition [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 33
    Par défaut RechercheV avec condition
    Bonjour, tous le monde.

    Bon alors j'ai lu pas mal de truc sur internet forum etc... y'a pas mal de solution mais je comprend pas le code et je n'arrive pas à l'adapter à ma situation.

    Bon alors rien de bien compliquer... pour vous ^^

    Voici le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Sub Conversion()
    Dim Cell As Range
    Set a=Worksheets("feuil1")
    For each Cell In a.range("F2:F6000")
        If Cell.Values="LeMotQueJeCherche" Then
           Cell.value=FormulaLocal="=recherchev("????";tablecas;2;Faux)
        End If
     
    End Sub
    Voilà donc une petite explication de la macro :
    1. je cherche le mot "LeMotQueJeCherche" dans la colonne F
    2. Si le mot est présent dans une cellule je remplace celle-ci par une rechercheV.
    3. Le problème c'est la "Valeur cherchée". J'aimerais que celle-ci soit variable. Le mieux c'est un petit exemple: en F2 je trouve "LeMotQueJeCherche" donc la valeur cherchée est (dans la colonne D par exemple) D2. Deuxième "LeMotQueJeCherche" est trouvé en F400 donc la valeur devient D400 et ainsi de suite.
    4. Le néophite est content.

    Voilà voilà, je sais que c'est un topic un peu réccurant mais j'ai cherché mais en vain.

    A bientôt.

  2. #2
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Bonjour,

    Si je comprend bien quand on trouve un mot, on remplace par une formule RechercheV qui recherche ce mot dans la colonne D et retourne la colonne E.
    Le prochain a chercher se trouvant en D et ainsi de suite
    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
    Dim cel As Range
    Dim strSearch As String
     
     
    strSearch = "Mardi"
     
    For Each cel In Range("F2:F6000")
     
        If cel.Value = strSearch Then
     
            cel.FormulaLocal = "=Recherchev(""" & strSearch & """;D:E;2;0)"
            strSearch = cel.Offset(0, -2).Value
     
        End If
     
    Next cel

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 33
    Par défaut
    Alors, j'ai essayé ton code.

    C'est pas exactement ça, en fait dans ton code la "valeur cherchée" (de la fonction rechercheV) est la même "que le "mot que je cherche" (dans la colonne F dans mon exemple). J'avoue ça porte à confusion.

    Cependant j'ai pu grâce à toi faire quelques modifications pour avoir le code que je recherche.

    Le voici : (histoire de partager le fruit de mon travail )

    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
    Sub test()
     
    Dim cel As Range 
    Dim strSearch As String
    'strSearch est la variable qui correspond à la valeur cherchée de la recherchev 
    Dim Valeur As String
    'valeur est la variable qui va contenir le mot à chercher (ici LeMotQueJeCherche)
     
    Valeur = "LeMotQueJeCherche"
     
    For Each cel In Range("F2:F6000")
     
        If cel.Value = Valeur Then
    'test qui permet de rechercher le à chercher
            strSearch = cel.Offset(0, -2).Value
    'une fois le mot trouvé on sélectionne la cellule qui se trouve 2 colonnes avant  
            cel.FormulaLocal = "=Recherchev(""" & strSearch & """;tablecas;2;0)"
    'on remplace le mot cherché par la recherchev
     
        End If
     
    Next cel
     
    End Sub
    Voila j'ai essayé d’être le plus clair possible pour les prochains.

    Merci beaucoup en tous les cas.

    A bientôt.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 33
    Par défaut
    Au fait une dernière petite question.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     cel.FormulaLocal = "=Recherchev(""" & strSearch & """;tablecas;2;0)"
    Est-il possible de m'expliquer pourquoi après recherchev on met 3 guillemets et le caractère & ?

    Merci et bonne soirée

  5. #5
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    1 .Dans une formule RechercheV la valeur recherchée, si elle est de type chaine de caractère, doit être entre " ".

    2. Dans une chaine de caractère, quand on veut afficher des ", il faut les doubler car sinon le code traduit par une sortie de chaine
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cel.FormulaLocal = "=Recherchev(""MOTRECHERCHE"";tablecas;2;0)"
    affichera dans la formule de la cellule
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =Recherchev("MOTRECHERCHE";tablecas;2;0)

    Le & sert à concaténer une chaine de caractère avec une variable ou une autre chaine de caractère

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 33
    Par défaut
    Merci. Bonne journée

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

Discussions similaires

  1. RechercheV avec conditions
    Par CLAUDE19 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 24/01/2015, 14h09
  2. Recherchev avec 2 conditions
    Par solorac dans le forum Excel
    Réponses: 11
    Dernier message: 21/01/2015, 14h27
  3. RechercheV avec condition
    Par roidurif dans le forum Excel
    Réponses: 7
    Dernier message: 21/02/2012, 14h01
  4. boucle recherchev avec condition
    Par sims92.66 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 17/02/2012, 15h49
  5. [E-03] Copie de ligne avec condition de type rechercheV
    Par Lufia dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 27/02/2009, 14h24

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