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 :

Remplir ComboBox et Textbox automatiquement


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2009
    Messages : 13
    Points : 10
    Points
    10
    Par défaut Remplir ComboBox et Textbox automatiquement
    Bonjour à tous,

    Je fais une table de base de données clientèle. J'ai un formulaire qui m'aide à remplir celle-ci.
    Par contre quand je tape le nom du client je voudrais savoir si celui-ci existe déjà donc je fais une recherche dans la colonne A des clients existant et j'efface les doubles. Dès que je choisie un nom de client, je voudrais qu'il me propose seulement le prénom qu'il existe pour ce nom. Malheureusement il me propose tous les prénoms qu'il trouve sous la colonne B.

    Fichier excel ci-joint pour exemple.

    Une petite aide?

    Merci par avance
    Davy
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 754
    Points : 9 396
    Points
    9 396
    Par défaut
    Bonjour,

    Je pense que ton problème vient du fait que tu ne vide pas ta combobox avant de la recharger
    Ci dessous une modification de ton code.
    Peut etre pas mega optimisé, mais a cette heure ...

    En gras les lignes ajoutées
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    Dim Init As Boolean
    
    Private Sub ComboBox1_Change()
        Dim h As Integer
        findname = ComboBox1.Value
        If Init = False Then ComboBox2.Clear
        For h = 2 To Range("A65536").End(xlUp).Row
            
            If Range("A" & h) = findname Then
                    ComboBox2 = Range("B" & h)
                    If ComboBox2.ListIndex = -1 Then ComboBox2.AddItem Range("B" & h)
                    
                    TextBox1 = Range("C" & h)
            End If
        Next h
    End Sub
    
    Private Sub CommandButton1_Click()
        Unload UserForm1
    End Sub
    
    Private Sub UserForm_Initialize()
            'Remplissage de la ComboBox1
            Dim j As Integer
            
            Init = True
            'Récupère les données de la colonne D...
            For j = 2 To Range("A65536").End(xlUp).Row
                ComboBox1 = Range("A" & j)
                '...et filtre les doublons
                If ComboBox1.ListIndex = -1 Then ComboBox1.AddItem Range("A" & j)
            Next j
            ComboBox1.Value = ""
            ComboBox2.Value = ""
            TextBox1.Value = ""
            
            Init = False
    End Sub
    EDIT : On ne vois pas le gras, je met en rouge
    Jérôme

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2009
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    Merci JFontaine,

    je viens aussi d'expérimenter et j'avais pensé à cela
    et ajouter aussi cela:
    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
    Private Sub ComboBox1_Change()
        Dim h As Integer
        Findname = ComboBox1.Value
        
            Me.ComboBox2.Clear
        For h = 2 To Range("A65536").End(xlUp).Row
            If Range("A" & h) = Findname Then
                    ComboBox2 = Range("B" & h)
                    If ComboBox2.ListIndex = -1 Then ComboBox2.AddItem Range("B" & h)
                    
                    TextBox1 = Range("C" & h)
            End If
        Next h
    End Sub
    Aussi ajouter en rouge. Juste ajouter un Me.ComboBox2.clear
    Merci encore pour ton aide.
    Davy

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

Discussions similaires

  1. Remplir Textbox automatiquement apartir d'un dropdownlist
    Par tronzo dans le forum ASP.NET MVC
    Réponses: 2
    Dernier message: 15/03/2011, 14h35
  2. [C#] Remplir combobox avec un enum
    Par AlexandreP dans le forum Windows Forms
    Réponses: 2
    Dernier message: 21/12/2006, 15h47
  3. [C#][1.1]Remplir Combobox avec sqlDataReader
    Par Monstros Velu dans le forum Windows Forms
    Réponses: 3
    Dernier message: 04/08/2006, 18h04
  4. [VBA-E]Remplir combobox avec contenu d'une feuille Excel
    Par Deejoh dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 07/03/2006, 17h16
  5. faire communiquer une combobox et textbox
    Par aliosys dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 27/12/2005, 11h20

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