Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Combobox et cellule liee

228 views
Skip to first unread message

Renaud Legrand

unread,
Aug 18, 2001, 4:24:58 PM8/18/01
to
Bonjour à tous,


J'ai un problème d'actualisation de données entre un contrôle (en
l'occurence combobox) et la cellule qui lui est liée par propriété
ControlSource.

Lorsque j'affiche mon userform de manière à pouvoir observer en
arrière-plan la cellule liée au combo, je m'aperçois que la sélection
d'une ligne de la liste déroulante ne provoque pas de changement dans
cette cellule liée.

La mise à jour ne se fait qu'après une autre action sur le userform
(clic sur optionbutton,...).

A chaque nouvelle sélection dans la liste déroulante, la cellule liée
fonctionne avec un coup de retard.
Or, la valeur prise par la cellule conditionne d'autres actions et
états du classeur et de VBA. Il est donc primordial que cette valeur
soit le reflet constant et immédiat du choix de l'utilisateur.

Quelqu'un pourrait-il me dire si ce "retard à l'affichage" est normal
(excel 97) et comment y remédier (cela touche peut-être d'autres
contrôles que les combo, j'ai plus de difficultés à vérifier).

D'avance, merci de à tous de votre attention et de l'aide que vous
pourrez m'apporter.

Renaud

Denis Michon

unread,
Aug 18, 2001, 11:50:54 PM8/18/01
to
Bonjour Renaud,

Tu devrais peut être commencer par observer sous quel événement
tu as placé ta procédure.

Un combobox possède plusieurs événements susceptible de modifier
sur le champ la valeur de la cellule liée comme par exemple:

- ComboBox1_Change(): Dès que tu as sélectionné
un nouvel item de ton combobox, la cellule liée aussi
change immédiatement sa valeur pour celle nouvellement
affichée par le combobox.
Mais dans certains cas, ça peut-être gênant, puisque la
mise à jour est immédiate et peut entraîner des modifications
dans l'ensemble de la feuille. Et bien, Comment faire pour
retrouver les données de départ???


- ComboBox1_AfterUpdate() : Dès que tu vas cliquer sur un
control qui peut recevoir la MÉTHODE SETFOCUS EX: textbox ,
la cellule va se mettre à jour.
Les contrôles "label" ou le formulaire lui-même n'ont pas
de méthode Setfocus.
Et plus important encore, un bouton decommande ne peut
recevoir le SetFocus. En conséquence, tu peux penser mettre
à jour ton combobox et actionner un bouton de commande,
mais ta cellule liée n'aura pas été mise à jour.
Si tu désires utiliser cet événement, ajoute à ton code
par exemple au début de celui-ci.
Userform1.Textbox1.setfocus(N'importe quel textbox de ton formulaire fera
l'affaire) et fait suivre le reste de ton code associé à ton bouton
de commande.

- ComboBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
cet événement ressemble au précédent.... avec légère nuance...
- d'autres sont aussi possibles, cela dépend de ton besoin...


Salutations!

"Renaud Legrand" <renaud....@laposte.net> a écrit dans le message news:
a6e9d559.01081...@posting.google.com...

0 new messages