Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Utiliser un ComboBox comme modèle de saisie...

4 réponses
Avatar
Myriam
Bonjour à toutes et tous !

J'utilise un ComboBox "Article" qui me sert à afficher un "Prix" dans un
TextBox en fonction de l'Article récupéré dans une base à deux colonnes
"Articles" & "Prix" (merci Pierre Fauconnier !)...
Hélas, à l'utilisation du ComboBox, si je modifie un peu le libellé
"Article", une erreur s'affiche pour mon TextBox "Prix" (ce qui est normal
vu que ce nouvel article n'est pas dans la base et donc n'a pas de prix !!!

Comment faire pour modifier 'à la volée' le texte du ComboBox "Article" à
l'utilisation sans perdre le prix de l'article initialement choisit....
Je ne veux pas ajouter ce nouvel article à ma base, juste le modifier
ponctuellement... Un peu comme la saisie auto de Windows quoi....

Merci

Voici mon code VB pour l'affichage du prix par rapport à l'article :

Private Sub Article_Change()
Prix = Article.Column(1)
End Sub
--
J'aime ces forums, mais ôter 'virgule.' pour me répondre par e-mail !!!
< virgule.la.bande.a.basil@netcourrier.com >
Myriam M.

4 réponses

Avatar
Pierre Fauconnier
Bonjour

Une solution pas très élégante ( c'est du bricolage, mais cela fonctionne)
consiste à traiter l'erreur ...en l'ignorant

Private Sub ComboBox1_Change()
On Error Resume Next
TextBox1 = ComboBox1.Column(1)
End Sub

Ainsi, lorsque la proc évènementielle ne peut pas lire la propriété column
lorsque l'article n'existe pas, elle ne met pas le prix à jour...


--
Cela convient-il?
----
Pierre Fauconnier
"C'est lorsqu'il y a un temps mort qu'il faut tuer le temps..."
(remplacer NOSPAM par pfi pour me répondre. Merci)


---

Myriam wrote:
Bonjour à toutes et tous !

J'utilise un ComboBox "Article" qui me sert à afficher un "Prix" dans
un TextBox en fonction de l'Article récupéré dans une base à deux
colonnes "Articles" & "Prix" (merci Pierre Fauconnier !)...
Hélas, à l'utilisation du ComboBox, si je modifie un peu le libellé
"Article", une erreur s'affiche pour mon TextBox "Prix" (ce qui est
normal vu que ce nouvel article n'est pas dans la base et donc n'a
pas de prix !!!

Comment faire pour modifier 'à la volée' le texte du ComboBox
"Article" à l'utilisation sans perdre le prix de l'article
initialement choisit.... Je ne veux pas ajouter ce nouvel article à
ma base, juste le modifier ponctuellement... Un peu comme la saisie
auto de Windows quoi....

Merci

Voici mon code VB pour l'affichage du prix par rapport à l'article :

Private Sub Article_Change()
Prix = Article.Column(1)
End Sub


Avatar
Myriam
Salut Pierre !!
Décidément, tu couches ici ??
Un grand merci à tous ceux qui comme toi, animent, participent, aident,
dépannent, rassurent toutes les nulles et tous les nuls qui 'bricolent'
comme tu dis....
Ton 'bricolage' fonctionne, comme dab !
Bonne journée !!!
--
J'aime ces forums, mais ôter 'virgule.' pour me répondre par e-mail !!!
< >
Myriam M.

"Pierre Fauconnier" a écrit dans le message de
news:%23EB%
Bonjour

Une solution pas très élégante ( c'est du bricolage, mais cela fonctionne)
consiste à traiter l'erreur ...en l'ignorant

Private Sub ComboBox1_Change()
On Error Resume Next
TextBox1 = ComboBox1.Column(1)
End Sub

Ainsi, lorsque la proc évènementielle ne peut pas lire la propriété column
lorsque l'article n'existe pas, elle ne met pas le prix à jour...


--
Cela convient-il?
----
Pierre Fauconnier
"C'est lorsqu'il y a un temps mort qu'il faut tuer le temps..."
(remplacer NOSPAM par pfi pour me répondre. Merci)


---

Myriam wrote:
Bonjour à toutes et tous !

J'utilise un ComboBox "Article" qui me sert à afficher un "Prix" dans
un TextBox en fonction de l'Article récupéré dans une base à deux
colonnes "Articles" & "Prix" (merci Pierre Fauconnier !)...
Hélas, à l'utilisation du ComboBox, si je modifie un peu le libellé
"Article", une erreur s'affiche pour mon TextBox "Prix" (ce qui est
normal vu que ce nouvel article n'est pas dans la base et donc n'a
pas de prix !!!

Comment faire pour modifier 'à la volée' le texte du ComboBox
"Article" à l'utilisation sans perdre le prix de l'article
initialement choisit.... Je ne veux pas ajouter ce nouvel article à
ma base, juste le modifier ponctuellement... Un peu comme la saisie
auto de Windows quoi....

Merci

Voici mon code VB pour l'affichage du prix par rapport à l'article :

Private Sub Article_Change()
Prix = Article.Column(1)
End Sub






Avatar
Michel Gaboly
Bonjour Myriam,

Je ne vois pas de solution directe ;-((

Je te propose d"ajouter un second TextBox, NomArticle.

Private Sub Article_Change()
NomArticle = Article.Column(0)
Prix = Article.Column(1)
End Sub

Avec l'ordre de tabulation, tu places NomArticle en fin de liste. Ainsi
tu n'y passes pas nécessairement, seulement si tu veux changer le
nom de l'article.

Au lieu de reporter le nom de l'article tel qu'il apparaît dans le Combo,
tu reportes l'info du second TextBox.

Par sécurité, tu peux reporter aussi, dans une colonne masquée le nom
de l'article tel qu'il apparaît dans le Combo. Cela évite de perdre l'info
initiale.

En plus je te conseille de mettre la propriété MatchRequired à True,
qui empe^che de sortir du TextBox en ayant modifié le nom de l'article.

Dans ce cas, il faut adapter le code ainsi : utiliser BeforeUpdate plutôt
que Change, sinon un message d'erreur survient lors de la tentative
d'alimentation des 2 TextBox, qui se produit avant le controle que le choix
fait dans le Combo est conforme à la liste initiale.

Private Sub Article_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
NomArticle = Article.Column(0)
Prix = Article.Column(1)
End Sub




Bonjour à toutes et tous !

J'utilise un ComboBox "Article" qui me sert à afficher un "Prix" dans un
TextBox en fonction de l'Article récupéré dans une base à deux colonnes
"Articles" & "Prix" (merci Pierre Fauconnier !)...
Hélas, à l'utilisation du ComboBox, si je modifie un peu le libellé
"Article", une erreur s'affiche pour mon TextBox "Prix" (ce qui est normal
vu que ce nouvel article n'est pas dans la base et donc n'a pas de prix !!!

Comment faire pour modifier 'à la volée' le texte du ComboBox "Article" à
l'utilisation sans perdre le prix de l'article initialement choisit....
Je ne veux pas ajouter ce nouvel article à ma base, juste le modifier
ponctuellement... Un peu comme la saisie auto de Windows quoi....

Merci

Voici mon code VB pour l'affichage du prix par rapport à l'article :

Private Sub Article_Change()
Prix = Article.Column(1)
End Sub
--
J'aime ces forums, mais ôter 'virgule.' pour me répondre par e-mail !!!
< >
Myriam M.


--
Cordialement,

Michel Gaboly
http://www.gaboly.com

Avatar
Pierre Fauconnier
Non non, j'ai dormi dans mon lit... ;-)

Cela étant, si du code supplémentaire suit l'erreur dans la même procédure,
n'oublie pas de remettre
on error goto 0
après la mise à jour du textbox, sinon, les autres erreurs qui pourraient
survenir seraient ignorées.
Dans le cas qui t'occupe, ce n'est pas grave d'ignorer l'erreur, puisque
c'est ce que tu cherches, mais tu pourrais avoir besoin de détecter d'autres
erreurs dans ton code.
Pour rappel, la gestion d'erreur est interne à une procédure ou une
fonction. La ligne "On error resume next" n'affecte donc la gestion
d'erreurs qu'à l'intérieur de la procédure ( sub, function, property get,
property let, ...) qui la contient...

Bon travail


--
Pierre Fauconnier
"C'est lorsqu'il y a un temps mort qu'il faut tuer le temps..." (Le Chat de
Geluck (enfin, je crois...))
(remplacer NOSPAM par pfi pour me répondre. Merci)


---

Myriam wrote:
Salut Pierre !!
Décidément, tu couches ici ??
Un grand merci à tous ceux qui comme toi, animent, participent,
aident, dépannent, rassurent toutes les nulles et tous les nuls qui
'bricolent' comme tu dis....
Ton 'bricolage' fonctionne, comme dab !
Bonne journée !!!

"Pierre Fauconnier" a écrit dans le
message de news:%23EB%
Bonjour

Une solution pas très élégante ( c'est du bricolage, mais cela
fonctionne) consiste à traiter l'erreur ...en l'ignorant

Private Sub ComboBox1_Change()
On Error Resume Next
TextBox1 = ComboBox1.Column(1)
End Sub

Ainsi, lorsque la proc évènementielle ne peut pas lire la propriété
column lorsque l'article n'existe pas, elle ne met pas le prix à
jour...


--
Cela convient-il?
----
Pierre Fauconnier
"C'est lorsqu'il y a un temps mort qu'il faut tuer le temps..."
(remplacer NOSPAM par pfi pour me répondre. Merci)


---

Myriam wrote:
Bonjour à toutes et tous !

J'utilise un ComboBox "Article" qui me sert à afficher un "Prix"
dans un TextBox en fonction de l'Article récupéré dans une base à
deux colonnes "Articles" & "Prix" (merci Pierre Fauconnier !)...
Hélas, à l'utilisation du ComboBox, si je modifie un peu le libellé
"Article", une erreur s'affiche pour mon TextBox "Prix" (ce qui est
normal vu que ce nouvel article n'est pas dans la base et donc n'a
pas de prix !!!

Comment faire pour modifier 'à la volée' le texte du ComboBox
"Article" à l'utilisation sans perdre le prix de l'article
initialement choisit.... Je ne veux pas ajouter ce nouvel article à
ma base, juste le modifier ponctuellement... Un peu comme la saisie
auto de Windows quoi....

Merci

Voici mon code VB pour l'affichage du prix par rapport à l'article :

Private Sub Article_Change()
Prix = Article.Column(1)
End Sub