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 :

Userform - Label contenant Vlookup en référence à une textbox


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Responsable commercial
    Inscrit en
    Décembre 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Responsable commercial
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2017
    Messages : 5
    Par défaut Userform - Label contenant Vlookup en référence à une textbox
    Bonjour à tous

    Novice en VBA, je suis fier d'avoir pu insérer dans un formulaire sous VBA une fonction vlookup dans un label en fonction de la saisie d'une textbox

    J'ai donc deux feuilles dans un classeur. La première est un tableau, sur lequel j'ai un bouton clic qui m'ouvre un formulaire userform à remplir. Lorsque je valide le formulaire, cela alimente mon tableau. Sur la seconde feuille (BDD), j'ai donc une base de données dans laquelle mon formulaire de la feuille 1 va chercher ses éléments.
    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    'Alimentation automatique du Label en fonction de textbox
     Private Sub Textbox_AfterUpdate()
     If Len(Textbox.Text) = 14 Then 'pour que la recherche vlookup ne se lance que si j'ai bien saisi mes 14 caractères dans la textbox
     Me.Label.Caption = Application.VLookup(Textbox.Value, Worksheets("BDD").Range("a:d"), 4, False)
     End If
     End Sub
    Mais je souhaite faire évoluer cette formule de la facon suivante :
    1- Si la saisie que j'opère dans ma textbox ne figure pas dans ma feuille BDD, il me renvoi un message d'erreur VBA et je passe en mode débogage ... Je préférerais une messagebox qui me demande de vérifier ma saisie dans la textbox car ce fichier est destiné à des utilisateurs qui ne doivent surtout pas fouiner dans les lignes de code !!! Il doit y avoir une solution en intégrant un truc du genre If/Then mais je séche sur la syntaxe ...
    2 - Je souhaiterais sortir ma feuille BDD du classeur. En effet, cette feuille BDD sera mise à jour régulièrement et disponible sur un serveur (le même que celui qui héberge mon fichier à alimenter mais pas forcément dans le même répertoire). J'ai donc besoin qu'il soit dissocier dans un fichier seul mais cela change tout mon code plus haut n'est ce pas ... Alors comment dois je le modifier ?

    Merci pour votre aide

  2. #2
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Bonjour,

    Au lieu d'utiliser Vlookup, je te conseille d’utiliser la méthode .Find :
    1 définir un variable Range qui correspond à la plage de recherche. l'avantage c'est quelle peut se situer dans un autre classeur.
    2 définir un variable Range qui correspond à la cellule trouvée
    3 affecter la cellule trouvée avec Set .. = Plage.Find(....)
    4 n'affecter le Label que si cellule trouvée n'est pas égal à Nothing

  3. #3
    Membre à l'essai
    Homme Profil pro
    Responsable commercial
    Inscrit en
    Décembre 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Responsable commercial
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2017
    Messages : 5
    Par défaut
    Oullllaaaaa

    Merci Patrice mais là, je vois qu'il y a un monde entre tes compétences et les miennes ... Je ne savais même pas que Find existait ... c'est dire !
    Peux tu tenter de me rédiger un code qui correspond à tout ce que tu me décris ...?

    Merki

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 176
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Chaque fonctionnalité d'excel à sa méthode en VBA ainsi la méthode Find, c'est l'outil de recherche (raccourci clavier Ctrl + F).
    Utilises l'enregistreur de macros et ainsi tu auras déjà un début de code servi sur un plateau et ensuite tu reviens sur le forum pour que lo'n t'aide à le peaufiner.

    Pour ta question initiale avec l'erreur renvoyée par le VLookUp il faut passer par la gestion des erreurs
    A lire La gestion des erreurs dans Excel et tout particulièrement le chapitre III. Les macros
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

Discussions similaires

  1. Réponses: 0
    Dernier message: 16/12/2009, 15h33
  2. Userform --> sauver un parametre dans une textbox
    Par damsmut dans le forum VBA Word
    Réponses: 1
    Dernier message: 10/03/2008, 13h32
  3. Création UserForm (Labels OptionButton TextBox )
    Par clodius46 dans le forum VBA Word
    Réponses: 21
    Dernier message: 23/09/2007, 20h06
  4. Réponses: 5
    Dernier message: 02/04/2007, 11h45
  5. [C#] Tab, et new line dans une TextBox ou un Label
    Par papouAlain dans le forum Windows Forms
    Réponses: 2
    Dernier message: 23/06/2006, 17h32

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