Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Mise à jour Combo box

  • Initiateur de la discussion Initiateur de la discussion XC2ONE
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

X

XC2ONE

Guest
Bonjour à Tous,

Dans la gestion de ma base de données, j'ai souhaité alimenter chaque fiche par un formulaire.

Dans le formulaire, j'ai intégré des TextBox pour les entrées libres et et des ComboBox pour les entrées à maîtriser.

Il existe un 2ème formulaire pour rechercher une fiche et la mettre à jour. Mais le problème est que si je mets les ComboBox sur les zones sensibles, l'initialisation du formulaire suite à la recherche ne récupère pas les données mais inscrit la liste prévue dans la ComboBox.

Ex : si un ComboBox doit permettre A, B OU C. Dans la création d'une fiche, l'utilisateur saisi C. La base est mise à jour. En ressortant la fiche par une fonction recherche, le combobox ne reprend pas C mais repropose A, B ou C.
Evidémment ça marche très bien pour les TextBox qui reprennent les bonnes données. En fait, j'ai peur que pour la modification d'une fiche, l'utilisateur saisi une donnéé erronée car non contrôlée par le ComboBox.

Merci à vous pour votre immense Aide...
 
Pascal,

Je ne vois pas à quel endroit rajouter ce code :

Voici le module d'éxécution de la recherche :


Public Sub c_Recherche()
f_recherche.Show
If choix_OK = True Then
choix_OK = False
v_trouve = False
valr = v_nom + '*'
For Each c In [C8:C1500]
If c.Value Like valr Then
'Range(c, c.Offset(0, 7)).Select
v_num = c.Row
v_trouve = True
v_ent1 = c.Offset(0, -2)
v_ent2 = c.Offset(0, -1)
v_ent3 = c
v_ent4 = c.Offset(0, 1)
v_ent5 = c.Offset(0, 2)
v_ent6 = c.Offset(0, 3)
v_ent7 = c.Offset(0, 4)
v_ent8 = c.Offset(0, 5)
v_ent9 = c.Offset(0, 6)
v_ent10 = c.Offset(0, 7)
v_ent11 = c.Offset(0, 8)
v_ent12 = c.Offset(0, 9)
v_ent13 = c.Offset(0, 10)
v_ent14 = c.Offset(0, 11)
v_ent15 = c.Offset(0, 12)
v_ent16 = c.Offset(0, 13)
v_ent17 = c.Offset(0, 15)
v_ent18 = c.Offset(0, 16)
v_ent19 = c.Offset(0, 17)
v_ent20 = c.Offset(0, 18)
v_ent21 = c.Offset(0, 19)
v_ent22 = c.Offset(0, 20)
v_ent23 = c.Offset(0, 21)
v_ent24 = c.Offset(0, 22)
v_ent25 = c.Offset(0, 23)
f_trouve.Show
If choix_OK = False Then
Exit For
End If
End If
Next
If v_trouve = False Then
f_non_trv.Show
End If
End If

Ensuite par exemple v_ent2 = Pascal dans la base

Dans le formulaire, le ComboBox initialisé de reprend pas Pascal mais la liste des possibilités car initialisé par la fonction suivante :

Private Sub UserForm_Activate()
' Initialiser la liste des vendeurs
Dernierf_ent2 = Range('PAR!N8').End(xlDown).Address
f_ent2.RowSource = 'PAR!N8:' & Dernierf_ent2
f_ent2.ListIndex = 0
etc...

Formulaire de modification :

Private Sub UserForm_Initialize()
f_ent2 = v_ent2


Private Sub f_b_modif_Click()
Sheets('BDD').Cells(v_num, 2) = f_ent2

Merci de m'aider si tu as le temps de lire tout ça en espérant avoir été clair...
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…