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 sur un vlookup


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 4
    Par défaut Pb sur un vlookup
    Bonjour,

    Je démarre en vba et je rencontre une difficulté. Sur une feuille de mon fichier Excel, appelée fiche clients, je rentre les données concernant mes clients, une fois que la fiche clients est remplie, toutes les données s'incrémentent sur une autre feuille, appelée base clients du même fichier Excel : je sais pas de quoi fouetter un chat mais j'y suis arrivée.
    En revanche, si je retape le nom de mes clients, je souhaiterais que les dernières informations déjà saisies réapparaissent sur ma fiche clients.
    En effet, un Mr Dupont peut acheter différents biens à différentes dates et je souhaite que cela soit le dernier achat qui apparaisse.

    En faisant une recherchev je n'ai aucune difficulté mais là oui. Voilà ce que j'ai écrit mais cela ne fonctionne pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    range("b3").Value = VLookup(range("B2").Value, wksBC.range("b:J"), 2, False)
    Merci de votre aide

    Bonne recherche !!

    Helpvlookup

  2. #2
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    Salut,

    je te suggère de démarrer l'enregistreur de macro et puis de saisir ta formule de recherchev dans ta cellule.

    Ensuite arrete l'enregistreur de macro et regarde dans Module1 (normallement si pas déjà du code) de VBA et tu verra le code saisi.

    C'est souvent éclairant pour apprendre à maitriser le code.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 4
    Par défaut On est sur la voie
    Merci bcp Godzestla

    Je viens de faire ta manip et effectivement tout s'éclaire. J'ai malgré tout un pb : c'est sur mon formulaire de saisie et non sur ma base de données que je souhaiterais que le nom du client apparaisse : or là les informations de mon client son mis sur ma base de clients.

    Je te donne ce que j'ai écrit :

    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
    ' Cette macro assume que la base de donnée comporte une ligne d'entêtes
        Dim rngFormulaire As range
        Dim wksBD As Worksheet
     
        Set rngFormulaire = Worksheets("Formulaire").range("B1:B27")
        Set wksBC= Worksheets("BC")
     
     
    'rechercher le client présent dans BC
     
    ActiveCell.FormulaR1C1 = "=VLOOKUP(R[-1]C,BD!C:C[2],2,FALSE)"
        range("B4").Select
     
     
     
        ' Copier les données du formulaire
        rngFormulaire.Copy
        ' Coller avec transposition dans la base de données
        wksBD.Cells(wksBD.UsedRange.Rows.Count + 1, 1).PasteSpecial Paste:=xlPasteValues, Transpose:=True
        ' Enlever l'indicateur d'opération copier/coller
        Application.CutCopyMode = False
        ' Effacer les données dans le formulaire
        rngFormulaire.ClearContents
        ' rappeler le client
    aurais - tu une astuce?

    Merci bcp

    Helpvlookup

  4. #4
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    range("b3").Value = Application.WorksheetFunction.VLookup(range("B2").Value, wksBC.range("b:J"), 2, False)

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 4
    Par défaut
    Bonjour,

    Merci pour la formule mais j'ai toujours mon souci où je souhaite qu'à partir de ma saisie du formulaire, le nom de mon client s'affiche : c'est de rappatrier la dernière fiche de mon client.

    Merci bcp

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 577
    Par défaut
    je n'ai pas tout saisi, excusez moi si mon intevention est a coté de la plaque, mais tu veux la derniere saisie pour un client, et rechercheV dans tous les cas, s'arrete a la premiere occurence trouvé , et a ma connaissance il part toujour du haut de la feuille.
    tu a surement d'autre possibilité comme find. find trouve aussi la premiere occurence, mais tu peux le relance (findnext) et ensuite tu compare a l'adresse du premier, pour revenir a l'info la plus fraiche.

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 4
    Par défaut
    En fait, sur mon fichier Excel, j'ai 2 onglets :
    - Un qui est ma base de données de clients
    - Un qui est le formulaire de saisie qui alimente le 1er onglet.

    Quand j'ai un client présent dans ma base, je souhaite lors de ma saisie sur mon formulaire rappeler le client s'il existe déjà;

    Mr Dupont a acheté X produits le 01/05/08, info stockée dans ma base de données.

    Si le client revient je souhaite avoir la dernière fiche pour savoir ce qu'il a acheté et la date de l'achat : cela permet de ne pas resaisir sur ma fiche client ses coordonées personnelles : d'où le besoin d'une recherchev avec la date de la dernière fiche rentrée pour ne pas avoir sa 1ère fiche.

    J'espère que mes explications t'auront paru plus claires.
    Merci bcp.

Discussions similaires

  1. [XL-2003] Macro Vlookup sur cellule vide
    Par Sibuxian dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/05/2010, 16h37
  2. mise en forme conditionnelle sur =VLOOKUP
    Par toto92 dans le forum Excel
    Réponses: 6
    Dernier message: 01/03/2010, 13h54
  3. [XL-2003] VLookup (ou RECHERCHEV) sur colonne de gauche
    Par Peanut dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 27/01/2010, 23h08
  4. vlookup avec problème sur la méthode range
    Par Nako_lito dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 15/09/2009, 12h34
  5. [XL-2003] VLOOKUP sur un string
    Par deubelte dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 13/07/2009, 20h59

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