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 :

[E-03] Remplir des listBox automatiquement dans un USERFORM avec un système de codif


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Inscrit en
    Décembre 2007
    Messages
    1 235
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 1 235
    Par défaut [E-03] Remplir des listBox automatiquement dans un USERFORM avec un système de codif
    Bonjour, pour que cela soit très clair, j'ai illustrer ma problématque sur un fichier word en pièce jointe.

    En vous remerciant d'avance.
    Fichiers attachés Fichiers attachés

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    191
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 191
    Par défaut
    Bonjour,

    Pas mal du tout ton petit fichier Word pour expliquer clairement ton problème ! Mais c'est pas tout le monde qui télécharge, fais attention à cela.

    Pour ce qui est de ton problème, j'ai un petit bout de code à te proposer:
    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
    Option Explicit
    Dim i As Byte
     
    Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    For i = 2 To 5
        If Cells(i, 1) = TextBox1.Text Then ComboBox1.AddItem Cells(i, 2)
    Next
    ComboBox1.ListIndex = 0
    End Sub
     
    Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    For i = 2 To 5
        If Cells(i, 3) = TextBox2.Text Then ComboBox2.AddItem Cells(i, 4)
    Next
    ComboBox2.ListIndex = 0
    End Sub
    Ce que tu appelles "ListBox" ets en réalité des ComboBox sous VBA (Liste déroulante)

    Crée un userform avec 2 textbox et 2 combobox. Dans la feuille vierge de ton classeur mets ton tableau de correspondance des codes a partir de la cellule A1. Teste le tout et dis nous si cela correspond à ton attente!

    Cordialement,

    Lyonel

  3. #3
    Membre éprouvé
    Inscrit en
    Décembre 2007
    Messages
    1 235
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 1 235
    Par défaut
    Merci beaucoup. Dans le principe sa fonctionne. Mais j'ai plusieurs petites questions, mais je vais y aller une par une.

    A quoi sert ce bout de code?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ComboBox1.ListIndex = 0
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ComboBox2.ListIndex = 0
    J'essaye de comprendre pour pouvoir l'étendre ensuite et broder autour pour complexifier un peu l'astuce.

    En tout cas c'est génial merci

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    191
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 191
    Par défaut
    Ca permet juste d'afficher le code correspondant. Sinon il est ajouté dans la liste déroulante mais n'apparait pas à l'écran... Enlève l'instruction et lance l'userform. Tu comprendras surement tout de suite le rôle de cette ligne !

  5. #5
    Membre éprouvé
    Inscrit en
    Décembre 2007
    Messages
    1 235
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 1 235
    Par défaut
    Non mais je te demandé sa parce que de temps en temps, sa se bloque sur ce bout de code et j'ai le message suivant:

    Impossible de définir la propriété ListIndex. Valeur de propriété non valide
    Mais je pense que c'est parce que la valeur saisie n'est pas correcte. Il faudrais donc que je fasse un test et que si la valeur n'est pas correcte alors sa me mette une msgBox? Je vais regarder sa.

    Par contre comment je peut faire pour que je puisse essayer plusieurs valeurs dans mes txtBox? Parce que actuelement, si je met par exemple "A1" dans ma txtBox1 sa va bien me mettre "AAAA" dans la combobox1. En revanche si j'efface "A1" et que j'essaye "A2" sa ne me réactualise pas ma combobox?

    Il faut peut être changer l'evement? J'ai essayer sur evenement Change, mais sa ne fonctionne pas...

    Merci

  6. #6
    Membre éprouvé
    Inscrit en
    Décembre 2007
    Messages
    1 235
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 1 235
    Par défaut
    Il existe une méthode tel que le refreshQuery en Exel?

    Où je ne sais pas, mais je vois vraiement pas comment faire et c'est vrai que c'est embettant, parecque si la personne se trompe elle ne peut plus revenir en arrière.

    J'ai essayé sa, mais la syntaxe ne doit pas être correcte?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub TextBox1_Change()
     
    Me.ComboBox1.Refresh
     
    End Sub
    Et pour ce qui est du test si la valeur tapée est correcte, j'ai plusieurs choses, dont sa, mais c'est pareil je n'ai pas la bonne syntaxe:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    For i = 2 To 6
        If Cells(i, 1) = TextBox1.Text Then
        ComboBox1.AddItem Cells(i, 2)
    Next
        ComboBox1.ListIndex = 0
        Else
        MsgBox ("Veuillez entrer un code valide")
        Exit Sub
        End If
     
    End Sub
    Parce que ce que je souhaite faire, c'est afficher une msgBox si la valeur de la textbox n'est pas trouvée lors de la boucle. La actuelement avec ce code sa me met "Next sans For".

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

Discussions similaires

  1. [WD-2003] remplir des champs automatiquement
    Par Golgotha dans le forum Word
    Réponses: 1
    Dernier message: 24/11/2009, 12h21
  2. Colorer des mots automatiquement dans une richtextbox
    Par ghost emperor dans le forum Windows Forms
    Réponses: 8
    Dernier message: 21/05/2008, 11h28
  3. Remplir des champs automatiquement sur un site
    Par Invité dans le forum Débuter
    Réponses: 4
    Dernier message: 09/05/2008, 01h04
  4. Réponses: 14
    Dernier message: 17/05/2006, 17h16
  5. remplir des cellules fixes dans une colone
    Par tahri_1989 dans le forum Bases de données
    Réponses: 1
    Dernier message: 11/01/2006, 16h06

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