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 une combobox en fonction d'une autre et d'une textbox


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Homme Profil pro
    Ingénieur process
    Inscrit en
    Novembre 2014
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur process
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2014
    Messages : 111
    Points : 54
    Points
    54
    Par défaut Remplir une combobox en fonction d'une autre et d'une textbox
    Bonjour au Forum,

    Voici mon problem, je suis sur un fichier de suivi de panne de production. L'idée est d'avoir un userform permettant de faire une recherché sur les pannes existante en remplissant une combobox avec les valeurs de la colonne S, la deuxième combobox doit se remplir avec les valeurs de la colonne B en function des valeurs de la premiere combobox et un affinage de la recherché avec une recherché de mots clef dans la Feuille BD. Le tout s'affichant dans un tableau dans l'userform.

    Conformement au réglement, je ne mets pas de fichier dans ce message. Il vrai que j'aime comprendre ce que j'écris.
    Merci pour l'aide que vous pourrez m'apporter parce que là, je ne vois comment faire, mais j'espère qu'avec votre aide je pourrai acquérir les competence nécessaires.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Peut-être ici http://excel.developpez.com/sources/...m#ComboCascade, un début de réponse.

  3. #3
    Membre du Club
    Homme Profil pro
    Ingénieur process
    Inscrit en
    Novembre 2014
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur process
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2014
    Messages : 111
    Points : 54
    Points
    54
    Par défaut
    Bonsoir Cathodique, bonsoir le Forum,

    Merci pour ce début de réponse, il m'est fort utile, maintenant, je ne comprend pas le code qui me permettrait de passer les donner à la combobox 2 en cascade. En faite, les données de la combobox 2 se situe 2 colonnes avant celles de la combobox 1 dans mon tableau. Je pourrais évidemment changer l'ordre des colonnes mais j'aimerais comprendre comment fonctionne ce code.
    Ensuite, il me faudra àjouter les references à des mots clefs, tout envoyer sur la feuille résultat et afficher cette feuille dans mon userform.
    J'espère que mon procéder est logique VBA parlant.
    Merci encore d'éclairer ma lanterne.

  4. #4
    Membre du Club
    Homme Profil pro
    Ingénieur process
    Inscrit en
    Novembre 2014
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur process
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2014
    Messages : 111
    Points : 54
    Points
    54
    Par défaut
    Bonsoir au forum,

    J'ai un peu avancé dans mon userform, j'ai réussi à programmer les deux combobox et la recherché par mot clefs, mais je ne sais pas comment exploiter les données pour les mettre dans mon userform. J'ai vraiment besoin d'une aide pour faire ce fichier. Du coup je vous joint mon fichier Suivi des pannes Traitement Ensachage.xlsm

    Merci à vous tous les bénévoles

  5. #5
    Membre éprouvé
    Avatar de eric4459
    Homme Profil pro
    Ingénieur Gestion de Projets
    Inscrit en
    Avril 2014
    Messages
    605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Gestion de Projets
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 605
    Points : 1 124
    Points
    1 124
    Par défaut
    Bonjour Celthi
    Pourrais-tu être plus explicite quant à ton objectif final?
    Que cherches tu à faire avec ton UserForm Recherche_de_Panne?
    J'ai compris que l'UserForm Enregistrement_de_Panne te servait à alimenter ta Feuille Base de Donnée, et ton code fonctionne, quoiqu'il soit possible de mettre du texte dans la case Date, il faudrait verrouiller(voir code ci_dessous)

    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
    Private Sub CommandButton1_Click()
     
    Dim LI As Long 'Remplissage de la feuille avec l'userform
    Dim TB1 As Variant
    LI = Range("B65536").End(xlUp).Row + 1
            If Enregistrement_panne.TextBox2.Value <> "" And Len(Enregistrement_panne.TextBox2.Text) < 10 Or (Enregistrement_panne.TextBox2.Value <> "" And Not IsDate(Enregistrement_panne.TextBox2.Value)) Then
                TB1 = MsgBox("La date doit etre au format" & Chr(10) & " " & Chr(10) & "jj/mm/aaaa", vbOKOnly, "ATTENTION")
                If TB1 = vbOK Then
                    Enregistrement_panne.Hide
                    Enregistrement_panne.TextBox2 = ""
                    Enregistrement_panne.TextBox2.SetFocus
                    Enregistrement_panne.Show
                End If
             End If
            Cells(LI, 2).Value = TextBox8.Value
            Cells(LI, 3).Value = TextBox2.Value
            Cells(LI, 4).Value = ComboBox1.Value
            Cells(LI, 5).Value = TextBox3.Value
            Cells(LI, 6).Value = TextBox4.Value
            Cells(LI, 7).Value = TextBox5.Value
            Cells(LI, 8).Value = TextBox6.Value
            Cells(LI, 9).Value = TextBox7.Value
     
    End Sub
    Eric
    "Vous n’avez cessé d’essayer ? Vous n’avez cessé d’échouer ? Aucune importance !
    Réessayez, échouez encore, échouez mieux." Samuel Beckett
    Pensez aux balises et
    Visitez les FAQ Excel et allez faire un tour ici
    Tutoriels de SilkyRoad

  6. #6
    Membre du Club
    Homme Profil pro
    Ingénieur process
    Inscrit en
    Novembre 2014
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur process
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2014
    Messages : 111
    Points : 54
    Points
    54
    Par défaut
    Bonjour eric4459, Bonjour au Forum,

    Tout d'abord pour ton apport au niveau du verrouillage de la date, je n'y avais pas pensé et je ne connaissais pas ce code. Je suis toujours un débutant en VBA, mais j'aime apprendre.
    Concernant l'Userform recherche_de_panne je cherche en faite simplement à faire des filtres sur deux colonnes, en y apportant une précision avec un mot clef pour lister les résultats dans un tableau qui doit être inséré dans l'userform.
    Je pense qu'il faut passer par la fonction listview, mais je n'en comprends pas l'application dans mon cas, même après avoir lu le tutoriel sur le sujet.
    Comment récupérer les données filtrées pour les insérer dans une listview ?
    Faut-il créer un tableau sur une feuille de calcule dédié avant de pouvoir ensuite inséré dans l'userform ?

    Voilà les questions auxquelles je fais face depuis plusieurs jours. J'ai essayé de comprendre par moi même, mais je sèche.

    Alors merci aux bonnes volontés pour l'aide que vous pourrez m'apporter.

  7. #7
    Membre du Club
    Homme Profil pro
    Ingénieur process
    Inscrit en
    Novembre 2014
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur process
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2014
    Messages : 111
    Points : 54
    Points
    54
    Par défaut
    Bonjour au forum,

    Qui cherche trouve. C'est parfois fou de passer à coté de certaines evidences !!!
    Je ne comprenais pas comment insérer une listview dans mon userform car en fait je n'avais pas ajouter l'outil dans la boite à outils d'insertion de commande !!!
    Ca c'est fait, maintenant comment la remplir ???

    Pour precision, les mots clefs sont à rechercher dans les colonnes G, H et I mais je pense ne pas l'avoir precise dans le code.

    Merci à tout ceux qui posent des questions et aux bénévoles passionnés qui y répondent.

  8. #8
    Membre du Club
    Homme Profil pro
    Ingénieur process
    Inscrit en
    Novembre 2014
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur process
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2014
    Messages : 111
    Points : 54
    Points
    54
    Par défaut
    bonjour au forum,

    Petit à petit j'avance mais je ne sais pas si je suis dans la bonne direction, j'ai toujours des soucis pour exploiter les résultats des données dans ma listview. J'ai utilize le tutorial du site que je digère, mais mon temps digestion risqué de dépasser ma deadline !!!

    Si vous pouvez regarder mon fichier et en particulier l'userforme : recherche de panne et me dire comment le remplir correctement.
    Merci

    Suivi des pannes Traitement Ensachage.xlsm

  9. #9
    Membre éprouvé
    Avatar de eric4459
    Homme Profil pro
    Ingénieur Gestion de Projets
    Inscrit en
    Avril 2014
    Messages
    605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Gestion de Projets
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 605
    Points : 1 124
    Points
    1 124
    Par défaut
    Bonjour,
    Voici un morceau de code qui te permettra de rechercher dans la feuille "base de donnée" les lignes qui ont en commun : le nom de la ligne de Prod, le titre de la panne et le mot clef recherché dans les colonnes GHI.
    La ou les lignes trouvées seront copiées puis collées dans la feuille "Résultat de la Recherche".
    A partir de là je pense que tu dois pouvoir alimenter ta list view.
    Je suis parti du postulat suivant:
    Dans l'UserForm il faut sélectionner la ligne , le titre de la panne et saisir un mot clé, ensuite lancer la macro que je te fourni et enfin, à partir des données de la feuille "Résultat de la Recherche", afficher le/les résultats dans ta ListView.


    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
    Sub Recherche()
    Dim Bd As Worksheet
    Dim Rech As Worksheet
    Dim NbLig As Long
    Dim der As Integer
    Set Bd = ThisWorkbook.Sheets("Base de données")
    Set Rech = ThisWorkbook.Sheets("Résultat de recherche")
    Dim Mot As String
    Dim i As Integer
    Dim j As Integer
     j = 1
     Mot = Recherche_de_panne.TextBox1.Text
     
     With Bd
     NbLig = .Cells(.Rows.Count, 4).End(xlUp).Row
     End With
     With Rech
     der = .Cells(.Rows.Count, 1).End(xlUp).Row
     End With
     
     For i = 2 To NbLig
        If Recherche_de_panne.ComboBox1.Value = Bd.Cells(i, 4).Value Then
            If Recherche_de_panne.ComboBox2.Value = Bd.Cells(i, 2).Value Then
                If Bd.Cells(i, 7).Text Like "*" & Mot & "*" Or Bd.Cells(i, 8).Text Like "*" & Mot & "*" Or Bd.Cells(i, 9).Text Like "*" & Mot & "*" Then
                Range(Bd.Cells(i, 2), Bd.Cells(i, 2).End(xlToRight)).Copy
                Rech.Cells(der + j, 1).PasteSpecial xlPasteValuesAndNumberFormats
                j = j + 1
                End If
            End If
        End If
     Next i
     
    End Sub
    J'espère avoir pu t'aider un peu malgré un manque de connaissance des ListView
    Bon courage

    Eric
    "Vous n’avez cessé d’essayer ? Vous n’avez cessé d’échouer ? Aucune importance !
    Réessayez, échouez encore, échouez mieux." Samuel Beckett
    Pensez aux balises et
    Visitez les FAQ Excel et allez faire un tour ici
    Tutoriels de SilkyRoad

Discussions similaires

  1. [AC-2007] Remplir une combobox en fonction d'une valeur de formulaire
    Par Bluuuh dans le forum IHM
    Réponses: 3
    Dernier message: 11/07/2010, 22h16
  2. remplir une combobox en fonction d'un autre
    Par mima_mine dans le forum Struts 1
    Réponses: 7
    Dernier message: 18/09/2008, 16h57
  3. Réponses: 11
    Dernier message: 10/06/2008, 10h31
  4. remplir un combobox en fonction d'un autre
    Par alex.a dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 17/07/2007, 17h19
  5. Remplir un combobox en fonction d'un autre
    Par emkka dans le forum Composants VCL
    Réponses: 10
    Dernier message: 30/04/2006, 19h17

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