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

Mise à jour combobox

  • Initiateur de la discussion Initiateur de la discussion JM
  • 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 !

J

JM

Guest
Bonjour le forum,

J'ai un combobox qui est alimenté par une rowsource et qui lorsque l'on choisit un nom remplit des textbox ainsi :

Private Sub ComboBox1_Click()
Dim y As Integer
y = ComboBox1.ListIndex + 2
Ajclient.Titre.Value = Worksheets("Clients").Cells(y, 1)
Ajclient.Nom.Value = Worksheets("Clients").Cells(y, 2)
Ajclient.prenom.Value = Worksheets("Clients").Cells(y, 3)

Il rappatrie dans des textbox (Ajclient.prenom) les informations relatives au nom, prénom etc...

Par ailleurs j'ai un bouton qui permet soit de rajouter un nom avec toutes les données y afférents soit de modifier le nom et les données y relatives

Private Sub CommandButton3_Click()
Dim nclient As String
Dim y As Integer
y = ComboBox1.ListIndex + 2

If Ajclient.CheckBox2 = True Then
nclient = Worksheets("Clients").Range("C500").End(xlUp).Row + 1

'les données sont ajoutées (nouveau client)

Worksheets("Clients").Range("B" & nclient) = Ajclient.Nom.Value
Worksheets("Clients").Range("C" & nclient) = Ajclient.prenom.Value

' les données sont modifiées (changement des données client)

Else: Range("A" & y) = Ajclient.Titre.Value
Rem Range("B" & y) = Ajclient.nom.Value
Range("C" & y) = Ajclient.prenom.Value


Or tout fonctionne sauf lorsque je modifie le nom (qui se trouve sélectionné dans le combobox) dans le textbox la macro bloque ou me jette. Alors que pour tous les autres champs (prénom, titre etc...) tout fonctionne. Je pense que cela est du au fait que le nom soit dans le combobox et qu'il n'arrive pas à gérer la modification.

Pourriez vous me guider ?

ps: je ne met pas le fichier car il est très lourd 🙁
 
Bonjour le Forrum,

J'ai réussi à faire en sorte qu'il n'y plus de blocage dans la macro, en fait une ligne de commande semblait induire cette erreur.

Par contre je soumets toujour le même problème, espérons plus facile à solutionner. Lorsque je rappatrie dans des textbox les données relatives à un client (nom, prénom etc...) et si je modifie le nom (c'est la liste source du combobox) seul le changement de ce dernier s'effectue. Si je neutralise dans le programme la ligne de commande relative à la modif du nom (Rem devant) alors les autres textbox modifient bien les autres informations.

Comment faire pour que le nom soit changé aussi avec les autres informations. Je rappelle que le nom est dans le combobox et qu'un textbox permet sa modification.

J'espère que c'est clair au niveau des explic.

En vous remerciant par avance.
 
Bonjour JM, le Forum

Je vois que tu as toujours autant d'ennuis, d'ailleurs je suis désolé de ne pas avoir eu le temps de te répondre à ta dernière question dans ce fil :

=> Lien supprimé

En fait je pense que tu n'as pas "percuté" sur ma question de mon post du 02-12-04 17:33, où je te demandais "Faudrait voir aussi comment tu initialises ta ComboBox, si c'est par la propriété "RowSource"... (non accèpté par les Macs, et, ce peut être une source d'ennuis aussi)

Moi j'ai laissé tombé les RowSources dans lers applis que je développe, au profit de AddItem pour des Petites Plages, ou alors de List d'une Array pour les plus grandes...

Bon Appétit
@+Thierry
 
Bonjour Thierry,

Oui effectivement j'initialise la combobox avec RowSource, qui me paraissait, à tord peut être, le plus simple. Je vais essayer de changer avec AddItem en espérant que cela fonctionne.

En te remerciant.
 
Thierry,

J'ai changé et...ça fonctionne, je te remercie vraiment. En fait le rowsource semble simple d'utilisation mais il ne semble pas gérer les modifications des combobox, c'est bien dommage moi qui commençait à m'y habituer.

Dorénavant et grace à tes conseils, que j'essaierai de suivre un peu plus précisémment, je n'utiliserai plus rowsource mais AddItem.

En te remerciant encore.
 
Après essai ça remet en cause toute l'architecture, car autant rowsource incrémentait le combobox autant là c'est différent et en plus ça génère des erreurs sur les modifications des feuilles qui n'existaient pas auparavant. apparemment n ne peut tout avoir 🙁
 
Re Bonjour JM, le Forum

Je ne sais que te dire, avec un Additem, tu peux ajouter autant d'items que tu veux, même en cours de fonctionnement (Run Time) du UserForm. Par de là même, tu peux en supprimer aussi (RemoveItem). Tu peux aussi ré-initialiser ta ComboBox et re-incrémenter tout ou partie les données qu'elle contient. (Clear). Tu peux aussi jouer avec les Index pour changer l'ordre des Items...

Toutes ces fonctionnalités ne sont pas disponibles avec "RowSource".

Maintenant, je ne sais pas comment tu t'y prends pour les "modifications de feuilles" (Feuilles au pluriels, alors que jusqu'à présent il me semblait qu'on était en mono feuille ("Clients"))...

Pour ma part, je ne vois pas ce que "AddItem" pourrait t'enlever comme fonctionnalité vis à vis de "RowSource" si tu as un code cohérent... Regardes diverses démos que j'ai faites depuis des années dans ce Forum, il y en a plein sur les ComboBox...

Bon Courage
@+Thierry
 
Re Re Bonjour le Forum et Thierry,

Tu as complètement raison il ne s'agissait que d'une feuille, j'ai tapé trop vite 🙂

Après maints petits soucis (lorsque l'on change un code cela entraine certaines réactions en chaine) je suis arrivé à modifier ma program et j'obtiens le résultat escompté.

Par contre il refuse catégoriquement ces lignes que j'avais placées dans USF_initialize, erreur 380 je crois.

With Me.ComboBox1
.ListIndex = 0
End With

Ce qui fait que je les ai omis. Cela semble quand même fonctionner.
Par contre à ton contact j'ai appris quelques petites (euphémisme) choses qui me seront utiles, déjà je ne renommérai plus rien ce qui permettra surement d'alléger le code.

En te remerciant encore, car comme je le disais je débute en vba et j'essaie de comprendre ce qui peut l'être (certaines choses me dépassent par contre).

Je te dis @+ car il serait étonnant que je n'ai pas d'autres soucis sur cette application, qui est bientot finalisée, ou une autre.
 
Salut JM

Heureux pour toi, si tu regardes la démo pour Sandrine aujourd'hui :

=> Lien supprimé

J'y emploie bien le .ListIndex = 0

... Mais seulement après avoir incrémenté des données dans la ComboBox...

Bonne Soirée et bon week end
@+Thierry
 
- 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

Réponses
3
Affichages
205
Réponses
3
Affichages
687
Réponses
3
Affichages
552
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…