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 :

mettre une boucle dans une recherchev


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Mai 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 4
    Par défaut mettre une boucle dans une recherchev
    Bonjour à tous

    Je ne connais rien à VBA...

    Je souhaite créer une fonction dans laquelle j'inclue une boucle à la fonction rechercheV

    Je m'explique:

    J'ai 2 colonnes A et B
    Je fais une rechercheV des elements de la colonne A (a) dans la colonne B (=vlookup(a,$B:$B;1,false)

    Pour chaque valeur (a), si le résultat de la rechercheV est #N/A je veux enlever le dernier digit et relancer la recherche, etc.
    Ainsi de suite jusqu'à obtenir un résultat autre que #N/A
    Si il n'y a plus de digit à enlever, je veux que le résultat soit "NO MATCH"

    Pour le moment j'ai fait ça :
    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
    Function check(a, B)
     
    Dim i As Integer
    i = 0
     
    check = WorksheetFunction.VLookup(Left(a, (Len(a) - i)), B, 1, False)
     
        If IsError(check) = True Then
            For i = 0 To i = Len(a)
                check = WorksheetFunction.VLookup(Left(a, Len(a) - i), B, 1, False)
            Next
            i = i + 1
                If i = Len(a) Then
                    check = "NO MATCH"
                End If
     
        End If
     
    End Function

    Le probleme c'est que la boucle ne marche pas...
    La rechercheV fonctionne normalement si le résultat existe, mais si on a besoin de la boucle le résultat est : "#VALEUR!"

    Quelqu'un veut bien m'aider?

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Déjà, à la sortie de ta boucle For next, as-tu vraiment besoin de
    i = i + 1
    Teste ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For i = 1 To 10
    Next
    MsgBox i
    Pour le reste, je ne comprends pas. C'est check qui te retourne "#VALEUR!"
    Tu parles de deux colonnes mais je ne vois rien dans ton code qui s'en rapproche C'est pour simplifier ton pb ?
    A+

  3. #3
    Futur Membre du Club
    Inscrit en
    Mai 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 4
    Par défaut
    merci de me répondre si vite

    1- je n'ai pas particulierement besoin de "i=i+1"
    j'ai mis ca pour incrementer i dans la boucle...

    j'ai testé ce que tu me proposes: ca ne change rien du tout, et aucune boite de dialogue n'apparait (c'est pourtant le but de "Msg box i" non?)

    mais si ca se trouve je me suis gourré en faisant ta modif (je pense pas car j'ai tout essayé mais bon, encore une fois, je connais vraiment rien à VBA)

    2- oui : par exemple je suis dans mon classeur excel :
    j'ai ma colonne A en A:A et ma colonne B en B:B
    dans la cellule C1 je tape "=check(A1;$B:$B)"

    La valeur qui est en cellule A1 : si on la retrouve dans la plage $B:$B, elle apparait dans la cellule C1.
    Sinon, ce qui apparait en C1 c'est #VALEUR!

    Je suis assez clair ou pas?

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Non, le test c'était simplement pour te montrer qu'après une boucle For i = 1 to 10, à la sortie de la boucle tu as 11. Il n'est donc pas nécessaire de mettre i = i + 1
    Désolé si je t'ai perturbé.
    Pour ta question essentielle, je n'ai pas de réponse Je n'ai jamais utilisé VLookup comme tu le fais. Désolé (re)

  5. #5
    Futur Membre du Club
    Inscrit en
    Mai 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 4
    Par défaut
    merci quand meme

  6. #6
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    La syntaxe du For en VBA (appliquée à ton cas) est:
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

Discussions similaires

  1. Utilisation d'une boucle dans une boucle
    Par caramon _majere dans le forum Langage
    Réponses: 5
    Dernier message: 27/09/2014, 21h37
  2. mettre un swf dans une iframe dans une page html
    Par petitevero dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 16/04/2011, 02h58
  3. [XL-2003] faire une boucle dans une boucle VBA
    Par the-geut dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/04/2010, 15h06
  4. [PHP 5.0] Manipulation XML une boucle dans une boucle
    Par lepotier dans le forum Langage
    Réponses: 2
    Dernier message: 10/03/2010, 12h15
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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