Afficher données selon choix menu déroulant

Résolu
julianinho Messages postés 99 Date d'inscription   Statut Membre Dernière intervention   -  
 BESASM -
Bonjour,

J'ai modifié un formulaire Excel que j'avais créé il y a quelques temps en remplaçant la textbox du nom pour en faire un menu déroulant afin de pouvoir faire une recherche comme pour le code client. Le problème c'est que ça fonctionne mais les 2 premières combobox ne récupèrent pas les donnés, c'est-à-dire que lorsque je choisis une personne via le menu déroulant nom, les 2 combobox restent vides. Et si je le choisis via le code client et ensuite choisis un autre nom, tout se met à jour sauf ces 2 là.
Est-ce que quelqu'un pourrait m'aider à trouver d'où vient le problème ?

Voici le fichier en question : https://www.cjoint.com/?3CdsZNEHEsH

Dernière question : lorsque je saisis un code client commençant par 1 ou 2, les données correspondantes au premier code client commençant par ces chiffres s'affichent même si je veux saisir un nouveau client. Est-ce qu'il y a un moyen pour que l'affichage de ces données ne soit possible que si je sélectionne le numéro dans la liste et non pas en le saisissant ?

Merci par avance. J'ai essayé pas mal de choses aujourd'hui mais n'arrive jamais au résultat souhaité :(
A voir également:

5 réponses

Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
Bonjour,

Le problème vient qu'il faut coder derrière l'évènement Change() de la combobox "Nom" pour faire afficher les données qui vont bien dans les combos qui vont bien ... De la même manière que ça se fait avec la combobox1.
0
julianinho Messages postés 99 Date d'inscription   Statut Membre Dernière intervention   33
 
Bonjour Polux31,

Merci pour ta réponse mais qu'entends-tu par "coder derrière" ?
Je suis débutant et rien que ce simple formulaire, je l'ai pas fait en 5 minutes ;)
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
Salut,

Je veux dire que rien ne se fait spontanément !!! ça demande un minimum de code.

Comment as-tu fait pour afficher les bonnes infos dans les bons champs du formulaire en sélectionnant un n° client ?
0
julianinho Messages postés 99 Date d'inscription   Statut Membre Dernière intervention   33
 
En fait, tout fonctionne, à part que lorsque je choisis un Nom, ça remplit tout sauf les 2 premières combobox et forcément ça remplit pas non plus les données dans le fichier Excel.

Je voudrais qu'en sélectionnant un Nom, ça fasse comme le Code client, ça remplisse tous les champs dans le formulaire et quand on clique sur Nouveau contact, ça crée bien une nouvelle ligne et quand on fait Modifier, ça modifie bien la ligne concernée.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
julianinho Messages postés 99 Date d'inscription   Statut Membre Dernière intervention   33
 
Bonjour,
Finalement, j'ai trouvé :)

Alors pour ceux qui aurait besoin de la réponse, voici mes morceaux de code :
    ComboBox2.ColumnCount = 1 'Pour la liste déroulante Civilité
    ComboBox2.List() = Array("", "M.", "Mme", "Mlle")
    Set Ws = Sheets("Clients") 'Correspond au nom de votre onglet dans le fichier Excel
    With Me.ComboBox1
        For J = 2 To Ws.Range("A" & Rows.Count).End(xlUp).Row
            .AddItem Ws.Range("A" & J)
        Next J
    End With
        With Me.TextBox2
        For J = 2 To Ws.Range("D" & Rows.Count).End(xlUp).Row
            .AddItem Ws.Range("D" & J)
        Next J
    End With
    For I = 1 To 7
        Me.Controls("TextBox" & I).Visible = True
    Next I
End Sub

'Pour la liste déroulante nom
Private Sub TextBox2_Change()
    Dim Ligne As Long
    Dim I As Integer
    
    If Me.TextBox2.ListIndex = -1 Then Exit Sub
    Ligne = Me.TextBox2.ListIndex + 2
    ComboBox1 = Ws.Cells(Ligne, "A")
    For I = 1 To 7
        Me.Controls("TextBox" & I) = Ws.Cells(Ligne, I + 2)
    Next I
End Sub

If MsgBox("Confirmez-vous la modification de ce contact ?", vbYesNo, "Demande de confirmation de modification") = vbYes Then
        If Me.ComboBox1.ListIndex = -1 Then Exit Sub
        Ligne = Me.ComboBox1.ListIndex + 2
        Ws.Cells(Ligne, "B") = ComboBox2
        For I = 1 To 7
            If Me.Controls("TextBox" & I).Visible = True Then
                Ws.Cells(Ligne, I + 2) = Me.Controls("TextBox" & I)
            End If
        Next I
    If Me.TextBox2.ListIndex = -1 Then Exit Sub
        Ligne = Me.ComboBox1.ListIndex + 2
        Ws.Cells(Ligne, "B") = TextBox3
        For I = 1 To 7
            If Me.Controls("TextBox" & I).Visible = True Then
                Ws.Cells(Ligne, I + 2) = Me.Controls("TextBox" & I)
            End If
        Next I
    End If


Et pour la saisie automatique, j'ai modifié le MatchEntry
0
BESASM
 
coucou tout le monde !
J'ai le mm pb que toi sauf moi quand je travaille avec deux ComboBox ça marche trés bien mais des que que j'ajoute plus deux comboBox les autre ça reste vides !!!
et j'ai essayé de modifier le code mais il m'affiche des erreurs 424 Objet requis!!!!!!
j'attend une reponse
Merci d'avance ^^
0
BESASM
 
PS: les ComboBox que je les ai ajouté, je les utilises pour remplir un tableau sous exel non pas pour une recherche ! je veux pas afficher le contenu des cellules mais la remplir avec des choix(sex par exemple) .
0