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 :

Combiner la fonction LOOKUP avec un COMBOBOX. [XL-MAC 2011]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Homme Profil pro
    retraité
    Inscrit en
    Octobre 2013
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Réunion

    Informations professionnelles :
    Activité : retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2013
    Messages : 49
    Points : 52
    Points
    52
    Par défaut Combiner la fonction LOOKUP avec un COMBOBOX.
    Bonjour.
    Je cherche à automatiser la facturation d'un auto-entrepreneur.
    Je me heurte au problème suivant.

    Je voudrai relier deux tables entres-elles:
    - la table clients ou les noms des clients se trouvent dans une colonne nommée "NomClient" et la colonne de leur identifiant nommé "TCC";
    - une table chantier où il faudrait introduire l'identifiant du client qui donne le chantier à réaliser;
    ceci pour matérialiser la relation mère-fille : un client donne 0 ou N chantier à l'auto-entrepreneur; un chantier est donné par un et un seul client.

    Dans UserForm "Nouveau Chantier" j'ai utilisé un combobox1 pour sélectionner le nom du client qui donne le nouveau chantier.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ComboBox1.List = Range("NomClient").Value
    Puis avec la fonction LOOKUP, j'introduirai l'identifiant correspondant au nom du client, dans la cellule appropriée.

    - code donné par l'enregistreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("B" & k).FormulaR1C1 = "=LOOKUP(ComboBox1,NomClient,TCC)"
    -code BVA trouvé sur le forum
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("B" & k)= Application.WorksheetFunction.Lookup(ComboBox1, NomClient, TCC)
    Aucun des 2 lignes de code ne fonctionne. Il semble que la fonction LOOKUP ne sache pas extraire le nom du client que contient le Combobox1.

    Je vous remercie de venir à mon secours.

    Cordialement et bonne journée à tous.

    jf Zuinghedau

  2. #2
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Points : 3 974
    Points
    3 974
    Par défaut
    Bonjour,

    Tu peux essayer avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("B" & k).Formula = "=LOOKUP(""" & ComboBox1.Value & """," & [NomClient].Address & "," & [TCC].Address & ")"
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("B" & k) = Application.WorksheetFunction.Lookup(ComboBox1.Value, [NomClient], [TCC])
    Cordialement.

  3. #3
    Membre du Club
    Homme Profil pro
    retraité
    Inscrit en
    Octobre 2013
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : Réunion

    Informations professionnelles :
    Activité : retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2013
    Messages : 49
    Points : 52
    Points
    52
    Par défaut
    Bonjour gFZT82

    Je te remercie pour ta réponse que je viens de lire maintenant. J'ai retenu le ligne code suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("B" & k) = Application.WorksheetFunction.Lookup(ComboBox1.Value, [NomClient], [TCC])
    J'ai obtenu ce message d'erreur qui m'a mis sur la piste :
    " Erreur d'exécution 1004. L'élément qui porte ce nom est introuvable."
    J'ai interprété le message ainsi : Lookup comprend le contenu de la Combobox1 mais pas celui de [NomClient].

    Alors j'ai tenté le code avec le mot Range
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("B" & k) = Application.WorksheetFunction.Lookup(ComboBox1.Value, Range("NomClient"), Range("TCC"))
    et j'obtiens la bonne réponse. Pourtant je croyais que la fonction Lookup n'admettait pas le Range devant les noms des cellules !

    Je ne comprends plus rien. Je trouve que Excel à un comportement bizarre avec Yosemite. Ainsi il ne reprend plus l'année des dates avec BVA.

    Merci pour ton aide.
    Cordialement

    JF Zuinghedau

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

Discussions similaires

  1. fonction pour filtrage avec des combobox en cascade
    Par Montor dans le forum Contribuez
    Réponses: 3
    Dernier message: 09/11/2009, 12h05
  2. Problème de vitesse avec fonction lookup table
    Par Phelix2003 dans le forum MATLAB
    Réponses: 10
    Dernier message: 06/11/2008, 05h57
  3. RPG4 - Probleme avec fonction %lookup
    Par BBert dans le forum AS/400
    Réponses: 4
    Dernier message: 25/04/2008, 20h36
  4. fonction left avec sql server 6.5
    Par shake dans le forum Langage SQL
    Réponses: 2
    Dernier message: 29/06/2004, 08h48
  5. Fonction If avec rs.eof problème
    Par M1000 dans le forum ASP
    Réponses: 5
    Dernier message: 24/03/2004, 17h10

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