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 :

Probleme sur la RechercheV en VBA [XL-2002]


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Inscrit en
    Juin 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 11
    Par défaut Probleme sur la RechercheV en VBA
    Bonjour tout le monde,

    Comme prévu je suis de retour avec encore une belle question de débutant dans ma besace:
    cette fois ci j'aimerais faire une recherchev sur une feuille de mon classeur et qui irai chercher sur une autre feuille du même classeur.

    J'ai tappé ça qui bien sur ne marche pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveCell.formulalocal = "=recherchev(Range("A7");'correspondance'Range("B3:C34"),2)"
    Une idée? A part que j'aille m'acheter le VBA pour les nuls?
    Toute façon je l'ai mis sur ma liste au père noel!

    Merci

  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
    Re,

    Pas certain d'avoir compris mais essaies ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveCell.FormulaLocal = "=recherchev(A7 ;'correspondance'!B3:C34;2)"
    ++
    Minick

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 567
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 567
    Par défaut
    tu peux faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     ActiveCell.Formula = "=VLOOKUP(" & "a7" & ",plagedonnées,2,FALSE)"

  4. #4
    Membre habitué
    Inscrit en
    Juin 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 11
    Par défaut
    Vous êtes trop forts, les deux solutions marchent.
    On peut aussi faire comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("E12").Value = Application.WorksheetFunction.VLookup(Range("A12").Value, Sheets("correspondance").Range("$B$3:$C$34"), 2)
    Ce qui n'est ceratinement pas beau mais fonctionnel

    Merci

    A++

  5. #5
    Membre habitué
    Inscrit en
    Juin 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 11
    Par défaut
    Heu en fait j'ai encore un soucis:
    Cette ligne est dans une boucle et il faudrait donc que A7 ne soit pas fixe. Que ça fasse A7 puis A8 etc jusqu'a la fin de la boucle.
    J'avais pensé à cells(y,1)
    avec y déclaré comme variable integer!
    Peut être qu'il y a une astuce avec les & mais j'ai pas tout compris encore avec les &.

    Merci

  6. #6
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    les & permette de faire de la concaténation de chaine de caratères
    Se mot barbare signifie simplement que tu met a la suite
    "bonjour" & "toi" devient "boujourtoi" (ben oui il n'y avait pas d'espace )
    donc essaye de remplacer "A7" par "A" & i (si i est la variable de ta hboucle)

    si tu met "A" & 3+5+4 cela donne "A12"
    si i =211 "A" & i devient "A221"

  7. #7
    Membre habitué
    Inscrit en
    Juin 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 11
    Par défaut
    Ok d'accord, je commence à comprendre.
    Le problème c'est que faut il syntaxiquement pour que cela marche dans la formule?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveCell.FormulaLocal = "=recherchev(Range("A"&y2) ;'correspondance'!B3:C34;2)"
    Elle est ou mon erreur?

    Merci d'avance et merci pour hier

  8. #8
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "=recherchev(Range(A" & y2 & ") ;'correspondance'!B3:C34;2)"
    les " " définisse le début et la fin des chaines de caractères tu met des " entre les chaine pour la concaténation
    toi tu avait mis une première chaine
    "=recherchev(Range("
    une variable a perdu au milieu sans symbole de concaténation
    A
    puis une deuxième chaine topujour sans symbole de concaténation
    "&y2) ;'correspondance'!B3:C34;2)"

    ps : si ton cerveaux travaille a toute allure tu te demande déja mais comment mettre un symbole " au milieu d'un chaine de caractère?
    tout simplement en en mettant deux a la suite "je cite ""une citation"""
    dommen bien la chaine
    je cite "une citation"

  9. #9
    Membre habitué
    Inscrit en
    Juin 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 11
    Par défaut
    D'accord mais dans ton exemple, le résultat ne serait pas plutôt: je cite une citation" ?

    Par contre la syntaxe que tu m'as conseillé me renvoi une erreur "erreur de syntaxe".
    Peut être n'ai je pas mis les bonnes choses avant?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveCell.FormulaLocal = "=recherchev(Range(A"&y2&");'correspondance'!B3:C34;2)"
    T'en penses quoi?

  10. #10
    Membre habitué
    Inscrit en
    Juin 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 11
    Par défaut
    Pour l'exemple je viens de m'apercevoir que ça faisait bien je cite "une citation".
    Pardon

  11. #11
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Tu as mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "=recherchev(Range(A"&y2&");'correspondance'!B3:C34;2)"
    j'avais mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "=recherchev(Range(A" & y2 & ");'correspondance'!B3:C34;2)"
    On va pas joué a cherche l'erreur, donc la solution
    A" & y2 & ")
    il faut mettre des espace autour des & et pas "&y2&"

  12. #12
    Membre habitué
    Inscrit en
    Juin 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 11
    Par défaut
    Effectivement je suis un boulet.
    Merci de me l'avoir fait remarqué.
    Ca marche au poil et j'ai enfin fini ma macro, par contre si je peux me permettre de poser une dernière question juste pour ma culture:
    Pourquoi ce code marche:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveCell.FormulaLocal = "=recherchev((A" & y2 & ");'correspondance'!B3:C34;2)"
    Et pas celui la:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveCell.FormulaLocal = "=recherchev(Range(A" & y2 & ");'correspondance'!B3:C34;2)"
    ??

  13. #13
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Je ne suis pas très doué au jeux des erreur mais la je crois que tu as mis de fois le même.

    Si la question portais sur les espace je pense que la contrainte syntaxique est du au fait que le & permet de définir des variable de type long
    a& signifie que a est de type long, ca marche aussi avec les valeurs 1000& est une variable de type long même si un integer aurais suffit

  14. #14
    Membre habitué
    Inscrit en
    Juin 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 11
    Par défaut
    nan la différence est subtile mais existe bel et bien dans le mot Range en plus.
    A la limite peut être mettre range(A7).value? Mais ça ne marche pas non plus.

  15. #15
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    en mettant le mot range dans la chaine de caractère ce la revient a utiliser range dans une formule.

    Excel ne connais pas le mot range c'est une syntaxe VBA excel connai A1.
    Tu aurai pu mettre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveCell.FormulaLocal = "=recherchev(" & Range("A" & y2).address & ");'correspondance'!B3:C34;2)"
    Ce que tu met entre " " nest absolument pas analyser par VBA que tu mette "1+1" ou "bob" VBA s'ent fout, il ne pas pas te dire que "1+1" ca fait "2"

  16. #16
    Membre éclairé
    Inscrit en
    Juin 2009
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 41
    Par défaut
    je croi que tu a fait une petite erreur de syntaxe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveCell.FormulaLocal = "=recherchev(" & Range("A" & y2).address & ");'correspondance'!B3:C34;2)"
    de plus tu peu remplacer le .adress par .value, ca devrai donner le même résultat

  17. #17
    Membre habitué
    Inscrit en
    Juin 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 11
    Par défaut
    D'accord
    Merci pour votre patienc et vos explications, je commence à comprendre de plus en plus de choses.

    Merci beaucoup

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

Discussions similaires

  1. Recherchev en vba sur plusieur vlaleur
    Par Dream Master dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/06/2007, 15h44
  2. [VBA-E] - Probleme sur un test conditionnel
    Par ekynoxx dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 09/05/2007, 11h05
  3. [VBA-E] Probleme sur création menu
    Par norkmassiv dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 08/12/2006, 17h12
  4. [VBA excel] Probleme sur bouton commande
    Par RedBurn dans le forum Macros et VBA Excel
    Réponses: 21
    Dernier message: 22/11/2005, 10h10
  5. probleme de selection aleatoire sur excel avec macro vba
    Par guillaume sors dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/10/2005, 10h51

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