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

Userform : Contrôle de cohérence entre TextBox et ComboBox

11 réponses
Avatar
Patrick BASTARD
Bonjour à tous.

je fais appel à vos lumières, car, malgré moult recherches, je n'ai pas
trouvé.

Sur l'UserForm1, entre autres :
Un ComboBoxLiaison (liste de données sur 6 caractères du genre L21654)
Un TextBoxSaisieC5 qui reçoit des données de 28 caractères via lecteur codes
à barres.
Un TextBoxPlomb qui reçoit des données de 11 caractères via lecteur codes à
barres)
Une ListBoxLiaisonsAutorisées alimentée par un champ calculé de ma feuille
en fonction de l'entrée dans TextBoxSaisieC5, de 23 caractères dont les 6
premiers sont des numéros de liaison du type L21654.
Une saisie dans TextBoxSaisieC5 place actuellement le curseur dans
TextBoxPlomb et vice versa, pour une saisie continue.

Je joins les codes de TextBox SaisieC5 ci-dessous qui fonctionnent :

Private Sub TextBoxSaisieC5_BeforeUpdate(ByVal Cancel As
MSForms.ReturnBoolean)
If Len(TextBoxSaisieC5.Value) <> 28 Then
TextBoxSaisieC5.BackColor = RGB(255, 0, 0) 'rouge
ErreurDesti 'joue un son Wave
MsgBox "Saisie non valide." & Chr(13) & "double cliquez dans la zone
saisie et resaisissez un code barre valide" & Chr(13) & "Appuyez sur ESC
pour annuler", vbCritical, "ERREUR !"
Cancel = True
End If
Me.TextBoxSaisieC5.BackColor = &HC0FFFF 'normal
Me.TextBoxSaisieC5.SelStart = 0
Me.TextBoxSaisieC5.SelLength = Len(Me.TextBoxSaisieC5)
End Sub

Private Sub TextBoxSaisieC5_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim Cp
Cp = Mid(TextBoxSaisieC5, 4, 5)
TextBoxIATA = Application.VLookup(CLng(Cp),
Sheets("AGENCE").Range("a2:b100"), 2, 0)
With Sheets("BaseLR")
.Activate
.Range("BO8") = Me.TextBoxIATA
End With
Dim LR
LR = Sheets("BaseLR").Range("bs9:bs20")
Me.ListBox1.List = LR
'Me.TextBoxSaisiePlomb = "" '###########
End Sub

Private Sub TextBoxSaisieC5_MouseDown(ByVal Button As Integer, ByVal Shift
As Integer, ByVal X As Single, ByVal Y As Single)
If Len(TextBoxCaisse.Value) < 1 Then
TextBoxCaisse.BackColor = RGB(255, 0, 0) 'rouge
ErreurDesti 'joue un son Wave
MsgBox "Saisie non valide" & Chr(13) & "Cliquez dans la zone Caisse
et entrez un numéro de caisse valide.", vbCritical, "ERREUR !"
End If
Me.TextBoxCaisse.BackColor = &HC0FFFF
End Sub

Un extrait expurgé de mon fichier : 143Ko
http://cjoint.com/?cosSGzDmbo

Le même zippé : 43 Ko
http://cjoint.com/?cosTIe2vDB

Je souhaite vérifier que la valeur choisie dans ComboBoxLiaison correspond
bien aux 6 premiers caractères de l'un des items de
ListBoxLiaisonsAutorisées renvoyée par la saisie dans TextBoxSaisieC5 et
dans le cas contraire, jouer un son Wave, effacer la valeur dans
TextBoxSaisieC5, le colorer en rouge et lui redonner le focus.
Si, en plus, en cas de correspondance, l'on pouvait soit mettre l'item
correspondant en surbrillance, soit modifier la couleur de sa police, ce
serait la cerise sur le gâteau !

en vous priant de m'excuser pour la longueur du post, je vous remercie de
l'avoir lue jusqu'au bout.

Bien cordialement

--
Bien amicordialement,
P. Bastard

Avant d'imprimer ce mail, ayez une pensée pour les arbres.

10 réponses

1 2
Avatar
Jean-marc
Patrick BASTARD wrote:
Bonjour à tous.



Hello,

Je souhaite vérifier que la valeur choisie dans ComboBoxLiaison
correspond bien aux 6 premiers caractères de l'un des items de
ListBoxLiaisonsAutorisées renvoyée par la saisie dans TextBoxSaisieC5
et dans le cas contraire, jouer un son Wave, effacer la valeur dans
TextBoxSaisieC5, le colorer en rouge et lui redonner le focus.
Si, en plus, en cas de correspondance, l'on pouvait soit mettre l'item
correspondant en surbrillance, soit modifier la couleur de sa police,
ce serait la cerise sur le gâteau !



Rien de plus simple, comme expliqué ici dans la FAQ:
http://faq.vb.free.fr/index.php?question5

Bonne suite !

Cordialement;

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
Avatar
Jean-marc
Patrick BASTARD wrote:
Bonjour à tous.


Hello,

Je souhaite vérifier que la valeur choisie dans ComboBoxLiaison
correspond bien aux 6 premiers caractères de l'un des items de
ListBoxLiaisonsAutorisées renvoyée par la saisie dans TextBoxSaisieC5
et dans le cas contraire, jouer un son Wave, effacer la valeur dans
TextBoxSaisieC5, le colorer en rouge et lui redonner le focus.
Si, en plus, en cas de correspondance, l'on pouvait soit mettre l'item
correspondant en surbrillance, soit modifier la couleur de sa police,
ce serait la cerise sur le gâteau !


Rien de plus simple, comme expliqué ici dans la FAQ:
http://faq.vb.free.fr/index.php?question5

Bonne suite !

Cordialement;

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;

Avatar
Pascal
http://www.excel-downloads.com/forum/forum-excel/

On te voit (très) souvent sur ce forum : microsoft.public.excel


"Patrick BASTARD" a écrit dans le
message de news:
Bonjour à tous.

je fais appel à vos lumières, car, malgré moult recherches, je n'ai pas
trouvé.

Sur l'UserForm1, entre autres :
Un ComboBoxLiaison (liste de données sur 6 caractères du genre L21654)
Un TextBoxSaisieC5 qui reçoit des données de 28 caractères via lecteur
codes à barres.
Un TextBoxPlomb qui reçoit des données de 11 caractères via lecteur codes
à barres)
Une ListBoxLiaisonsAutorisées alimentée par un champ calculé de ma feuille
en fonction de l'entrée dans TextBoxSaisieC5, de 23 caractères dont les 6
premiers sont des numéros de liaison du type L21654.
Une saisie dans TextBoxSaisieC5 place actuellement le curseur dans
TextBoxPlomb et vice versa, pour une saisie continue.

Je joins les codes de TextBox SaisieC5 ci-dessous qui fonctionnent :

Private Sub TextBoxSaisieC5_BeforeUpdate(ByVal Cancel As
MSForms.ReturnBoolean)
If Len(TextBoxSaisieC5.Value) <> 28 Then
TextBoxSaisieC5.BackColor = RGB(255, 0, 0) 'rouge
ErreurDesti 'joue un son Wave
MsgBox "Saisie non valide." & Chr(13) & "double cliquez dans la
zone saisie et resaisissez un code barre valide" & Chr(13) & "Appuyez sur
ESC pour annuler", vbCritical, "ERREUR !"
Cancel = True
End If
Me.TextBoxSaisieC5.BackColor = &HC0FFFF 'normal
Me.TextBoxSaisieC5.SelStart = 0
Me.TextBoxSaisieC5.SelLength = Len(Me.TextBoxSaisieC5)
End Sub

Private Sub TextBoxSaisieC5_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim Cp
Cp = Mid(TextBoxSaisieC5, 4, 5)
TextBoxIATA = Application.VLookup(CLng(Cp),
Sheets("AGENCE").Range("a2:b100"), 2, 0)
With Sheets("BaseLR")
.Activate
.Range("BO8") = Me.TextBoxIATA
End With
Dim LR
LR = Sheets("BaseLR").Range("bs9:bs20")
Me.ListBox1.List = LR
'Me.TextBoxSaisiePlomb = "" '###########
End Sub

Private Sub TextBoxSaisieC5_MouseDown(ByVal Button As Integer, ByVal Shift
As Integer, ByVal X As Single, ByVal Y As Single)
If Len(TextBoxCaisse.Value) < 1 Then
TextBoxCaisse.BackColor = RGB(255, 0, 0) 'rouge
ErreurDesti 'joue un son Wave
MsgBox "Saisie non valide" & Chr(13) & "Cliquez dans la zone Caisse
et entrez un numéro de caisse valide.", vbCritical, "ERREUR !"
End If
Me.TextBoxCaisse.BackColor = &HC0FFFF
End Sub

Un extrait expurgé de mon fichier : 143Ko
http://cjoint.com/?cosSGzDmbo

Le même zippé : 43 Ko
http://cjoint.com/?cosTIe2vDB

Je souhaite vérifier que la valeur choisie dans ComboBoxLiaison correspond
bien aux 6 premiers caractères de l'un des items de
ListBoxLiaisonsAutorisées renvoyée par la saisie dans TextBoxSaisieC5 et
dans le cas contraire, jouer un son Wave, effacer la valeur dans
TextBoxSaisieC5, le colorer en rouge et lui redonner le focus.
Si, en plus, en cas de correspondance, l'on pouvait soit mettre l'item
correspondant en surbrillance, soit modifier la couleur de sa police, ce
serait la cerise sur le gâteau !

en vous priant de m'excuser pour la longueur du post, je vous remercie de
l'avoir lue jusqu'au bout.

Bien cordialement

--
Bien amicordialement,
P. Bastard

Avant d'imprimer ce mail, ayez une pensée pour les arbres.



Avatar
Pascal
http://www.excel-downloads.com/forum/forum-excel/

On te voit (très) souvent sur ce forum : microsoft.public.excel


"Patrick BASTARD" a écrit dans le
message de news:
Bonjour à tous.

je fais appel à vos lumières, car, malgré moult recherches, je n'ai pas
trouvé.

Sur l'UserForm1, entre autres :
Un ComboBoxLiaison (liste de données sur 6 caractères du genre L21654)
Un TextBoxSaisieC5 qui reçoit des données de 28 caractères via lecteur
codes à barres.
Un TextBoxPlomb qui reçoit des données de 11 caractères via lecteur codes
à barres)
Une ListBoxLiaisonsAutorisées alimentée par un champ calculé de ma feuille
en fonction de l'entrée dans TextBoxSaisieC5, de 23 caractères dont les 6
premiers sont des numéros de liaison du type L21654.
Une saisie dans TextBoxSaisieC5 place actuellement le curseur dans
TextBoxPlomb et vice versa, pour une saisie continue.

Je joins les codes de TextBox SaisieC5 ci-dessous qui fonctionnent :

Private Sub TextBoxSaisieC5_BeforeUpdate(ByVal Cancel As
MSForms.ReturnBoolean)
If Len(TextBoxSaisieC5.Value) <> 28 Then
TextBoxSaisieC5.BackColor = RGB(255, 0, 0) 'rouge
ErreurDesti 'joue un son Wave
MsgBox "Saisie non valide." & Chr(13) & "double cliquez dans la
zone saisie et resaisissez un code barre valide" & Chr(13) & "Appuyez sur
ESC pour annuler", vbCritical, "ERREUR !"
Cancel = True
End If
Me.TextBoxSaisieC5.BackColor = &HC0FFFF 'normal
Me.TextBoxSaisieC5.SelStart = 0
Me.TextBoxSaisieC5.SelLength = Len(Me.TextBoxSaisieC5)
End Sub

Private Sub TextBoxSaisieC5_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim Cp
Cp = Mid(TextBoxSaisieC5, 4, 5)
TextBoxIATA = Application.VLookup(CLng(Cp),
Sheets("AGENCE").Range("a2:b100"), 2, 0)
With Sheets("BaseLR")
.Activate
.Range("BO8") = Me.TextBoxIATA
End With
Dim LR
LR = Sheets("BaseLR").Range("bs9:bs20")
Me.ListBox1.List = LR
'Me.TextBoxSaisiePlomb = "" '###########
End Sub

Private Sub TextBoxSaisieC5_MouseDown(ByVal Button As Integer, ByVal Shift
As Integer, ByVal X As Single, ByVal Y As Single)
If Len(TextBoxCaisse.Value) < 1 Then
TextBoxCaisse.BackColor = RGB(255, 0, 0) 'rouge
ErreurDesti 'joue un son Wave
MsgBox "Saisie non valide" & Chr(13) & "Cliquez dans la zone Caisse
et entrez un numéro de caisse valide.", vbCritical, "ERREUR !"
End If
Me.TextBoxCaisse.BackColor = &HC0FFFF
End Sub

Un extrait expurgé de mon fichier : 143Ko
http://cjoint.com/?cosSGzDmbo

Le même zippé : 43 Ko
http://cjoint.com/?cosTIe2vDB

Je souhaite vérifier que la valeur choisie dans ComboBoxLiaison correspond
bien aux 6 premiers caractères de l'un des items de
ListBoxLiaisonsAutorisées renvoyée par la saisie dans TextBoxSaisieC5 et
dans le cas contraire, jouer un son Wave, effacer la valeur dans
TextBoxSaisieC5, le colorer en rouge et lui redonner le focus.
Si, en plus, en cas de correspondance, l'on pouvait soit mettre l'item
correspondant en surbrillance, soit modifier la couleur de sa police, ce
serait la cerise sur le gâteau !

en vous priant de m'excuser pour la longueur du post, je vous remercie de
l'avoir lue jusqu'au bout.

Bien cordialement

--
Bien amicordialement,
P. Bastard

Avant d'imprimer ce mail, ayez une pensée pour les arbres.



Avatar
Patrick BASTARD
Bonjour à toi aussi, *Pascal*


http://www.excel-downloads.com/forum/forum-excel/

On te voit (très) souvent sur ce forum : microsoft.public.excel


Et sur d'autres aussi, mais...
serait-ce un reproche ?

--
Bien amicordialement,
P. Bastard

Avant d'imprimer ce mail, ayez une pensée pour les arbres.

"Patrick BASTARD" a écrit dans le
message de news:
Bonjour à tous.

je fais appel à vos lumières, car, malgré moult recherches, je n'ai
pas trouvé.

Sur l'UserForm1, entre autres :
Un ComboBoxLiaison (liste de données sur 6 caractères du genre
L21654) Un TextBoxSaisieC5 qui reçoit des données de 28 caractères via
lecteur codes à barres.
Un TextBoxPlomb qui reçoit des données de 11 caractères via lecteur
codes à barres)
Une ListBoxLiaisonsAutorisées alimentée par un champ calculé de ma
feuille en fonction de l'entrée dans TextBoxSaisieC5, de 23
caractères dont les 6 premiers sont des numéros de liaison du type
L21654. Une saisie dans TextBoxSaisieC5 place actuellement le curseur
dans
TextBoxPlomb et vice versa, pour une saisie continue.

Je joins les codes de TextBox SaisieC5 ci-dessous qui fonctionnent :

Private Sub TextBoxSaisieC5_BeforeUpdate(ByVal Cancel As
MSForms.ReturnBoolean)
If Len(TextBoxSaisieC5.Value) <> 28 Then
TextBoxSaisieC5.BackColor = RGB(255, 0, 0) 'rouge
ErreurDesti 'joue un son Wave
MsgBox "Saisie non valide." & Chr(13) & "double cliquez dans
la zone saisie et resaisissez un code barre valide" & Chr(13) &
"Appuyez sur ESC pour annuler", vbCritical, "ERREUR !"
Cancel = True
End If
Me.TextBoxSaisieC5.BackColor = &HC0FFFF 'normal
Me.TextBoxSaisieC5.SelStart = 0
Me.TextBoxSaisieC5.SelLength = Len(Me.TextBoxSaisieC5)
End Sub

Private Sub TextBoxSaisieC5_Exit(ByVal Cancel As
MSForms.ReturnBoolean) Dim Cp
Cp = Mid(TextBoxSaisieC5, 4, 5)
TextBoxIATA = Application.VLookup(CLng(Cp),
Sheets("AGENCE").Range("a2:b100"), 2, 0)
With Sheets("BaseLR")
.Activate
.Range("BO8") = Me.TextBoxIATA
End With
Dim LR
LR = Sheets("BaseLR").Range("bs9:bs20")
Me.ListBox1.List = LR
'Me.TextBoxSaisiePlomb = "" '###########
End Sub

Private Sub TextBoxSaisieC5_MouseDown(ByVal Button As Integer, ByVal
Shift As Integer, ByVal X As Single, ByVal Y As Single)
If Len(TextBoxCaisse.Value) < 1 Then
TextBoxCaisse.BackColor = RGB(255, 0, 0) 'rouge
ErreurDesti 'joue un son Wave
MsgBox "Saisie non valide" & Chr(13) & "Cliquez dans la zone
Caisse et entrez un numéro de caisse valide.", vbCritical, "ERREUR !"
End If
Me.TextBoxCaisse.BackColor = &HC0FFFF
End Sub

Un extrait expurgé de mon fichier : 143Ko
http://cjoint.com/?cosSGzDmbo

Le même zippé : 43 Ko
http://cjoint.com/?cosTIe2vDB

Je souhaite vérifier que la valeur choisie dans ComboBoxLiaison
correspond bien aux 6 premiers caractères de l'un des items de
ListBoxLiaisonsAutorisées renvoyée par la saisie dans
TextBoxSaisieC5 et dans le cas contraire, jouer un son Wave, effacer
la valeur dans TextBoxSaisieC5, le colorer en rouge et lui redonner
le focus. Si, en plus, en cas de correspondance, l'on pouvait soit mettre
l'item correspondant en surbrillance, soit modifier la couleur de sa
police, ce serait la cerise sur le gâteau !

en vous priant de m'excuser pour la longueur du post, je vous
remercie de l'avoir lue jusqu'au bout.

Bien cordialement

--
Bien amicordialement,
P. Bastard

Avant d'imprimer ce mail, ayez une pensée pour les arbres.




Avatar
Patrick BASTARD
Bonjour à tous.

Je relance, au cas où ...

--
Bien amicordialement,
P. Bastard, qui garde espoir.

Avant d'imprimer ce mail, ayez une pensée pour les arbres.

je fais appel à vos lumières, car, malgré moult recherches, je n'ai
pas trouvé.

Sur l'UserForm1, entre autres :
Un ComboBoxLiaison (liste de données sur 6 caractères du genre L21654)
Un TextBoxSaisieC5 qui reçoit des données de 28 caractères via
lecteur codes à barres.
Un TextBoxPlomb qui reçoit des données de 11 caractères via lecteur
codes à barres)
Une ListBoxLiaisonsAutorisées alimentée par un champ calculé de ma
feuille en fonction de l'entrée dans TextBoxSaisieC5, de 23
caractères dont les 6 premiers sont des numéros de liaison du type
L21654. Une saisie dans TextBoxSaisieC5 place actuellement le curseur dans
TextBoxPlomb et vice versa, pour une saisie continue.

Je joins les codes de TextBox SaisieC5 ci-dessous qui fonctionnent :

Private Sub TextBoxSaisieC5_BeforeUpdate(ByVal Cancel As
MSForms.ReturnBoolean)
If Len(TextBoxSaisieC5.Value) <> 28 Then
TextBoxSaisieC5.BackColor = RGB(255, 0, 0) 'rouge
ErreurDesti 'joue un son Wave
MsgBox "Saisie non valide." & Chr(13) & "double cliquez dans
la zone saisie et resaisissez un code barre valide" & Chr(13) &
"Appuyez sur ESC pour annuler", vbCritical, "ERREUR !"
Cancel = True
End If
Me.TextBoxSaisieC5.BackColor = &HC0FFFF 'normal
Me.TextBoxSaisieC5.SelStart = 0
Me.TextBoxSaisieC5.SelLength = Len(Me.TextBoxSaisieC5)
End Sub

Private Sub TextBoxSaisieC5_Exit(ByVal Cancel As
MSForms.ReturnBoolean) Dim Cp
Cp = Mid(TextBoxSaisieC5, 4, 5)
TextBoxIATA = Application.VLookup(CLng(Cp),
Sheets("AGENCE").Range("a2:b100"), 2, 0)
With Sheets("BaseLR")
.Activate
.Range("BO8") = Me.TextBoxIATA
End With
Dim LR
LR = Sheets("BaseLR").Range("bs9:bs20")
Me.ListBox1.List = LR
'Me.TextBoxSaisiePlomb = "" '###########
End Sub

Private Sub TextBoxSaisieC5_MouseDown(ByVal Button As Integer, ByVal
Shift As Integer, ByVal X As Single, ByVal Y As Single)
If Len(TextBoxCaisse.Value) < 1 Then
TextBoxCaisse.BackColor = RGB(255, 0, 0) 'rouge
ErreurDesti 'joue un son Wave
MsgBox "Saisie non valide" & Chr(13) & "Cliquez dans la zone
Caisse et entrez un numéro de caisse valide.", vbCritical, "ERREUR !"
End If
Me.TextBoxCaisse.BackColor = &HC0FFFF
End Sub

Un extrait expurgé de mon fichier : 143Ko
http://cjoint.com/?cosSGzDmbo

Le même zippé : 43 Ko
http://cjoint.com/?cosTIe2vDB

Je souhaite vérifier que la valeur choisie dans ComboBoxLiaison
correspond bien aux 6 premiers caractères de l'un des items de
ListBoxLiaisonsAutorisées renvoyée par la saisie dans TextBoxSaisieC5
et dans le cas contraire, jouer un son Wave, effacer la valeur dans
TextBoxSaisieC5, le colorer en rouge et lui redonner le focus.
Si, en plus, en cas de correspondance, l'on pouvait soit mettre l'item
correspondant en surbrillance, soit modifier la couleur de sa police,
ce serait la cerise sur le gâteau !

en vous priant de m'excuser pour la longueur du post, je vous
remercie de l'avoir lue jusqu'au bout.

Bien cordialement


Avatar
Patrick BASTARD
Bonjour à tous.

Je relance, au cas où ...

--
Bien amicordialement,
P. Bastard, qui garde espoir.

Avant d'imprimer ce mail, ayez une pensée pour les arbres.

je fais appel à vos lumières, car, malgré moult recherches, je n'ai
pas trouvé.

Sur l'UserForm1, entre autres :
Un ComboBoxLiaison (liste de données sur 6 caractères du genre L21654)
Un TextBoxSaisieC5 qui reçoit des données de 28 caractères via
lecteur codes à barres.
Un TextBoxPlomb qui reçoit des données de 11 caractères via lecteur
codes à barres)
Une ListBoxLiaisonsAutorisées alimentée par un champ calculé de ma
feuille en fonction de l'entrée dans TextBoxSaisieC5, de 23
caractères dont les 6 premiers sont des numéros de liaison du type
L21654. Une saisie dans TextBoxSaisieC5 place actuellement le curseur dans
TextBoxPlomb et vice versa, pour une saisie continue.

Je joins les codes de TextBox SaisieC5 ci-dessous qui fonctionnent :

Private Sub TextBoxSaisieC5_BeforeUpdate(ByVal Cancel As
MSForms.ReturnBoolean)
If Len(TextBoxSaisieC5.Value) <> 28 Then
TextBoxSaisieC5.BackColor = RGB(255, 0, 0) 'rouge
ErreurDesti 'joue un son Wave
MsgBox "Saisie non valide." & Chr(13) & "double cliquez dans
la zone saisie et resaisissez un code barre valide" & Chr(13) &
"Appuyez sur ESC pour annuler", vbCritical, "ERREUR !"
Cancel = True
End If
Me.TextBoxSaisieC5.BackColor = &HC0FFFF 'normal
Me.TextBoxSaisieC5.SelStart = 0
Me.TextBoxSaisieC5.SelLength = Len(Me.TextBoxSaisieC5)
End Sub

Private Sub TextBoxSaisieC5_Exit(ByVal Cancel As
MSForms.ReturnBoolean) Dim Cp
Cp = Mid(TextBoxSaisieC5, 4, 5)
TextBoxIATA = Application.VLookup(CLng(Cp),
Sheets("AGENCE").Range("a2:b100"), 2, 0)
With Sheets("BaseLR")
.Activate
.Range("BO8") = Me.TextBoxIATA
End With
Dim LR
LR = Sheets("BaseLR").Range("bs9:bs20")
Me.ListBox1.List = LR
'Me.TextBoxSaisiePlomb = "" '###########
End Sub

Private Sub TextBoxSaisieC5_MouseDown(ByVal Button As Integer, ByVal
Shift As Integer, ByVal X As Single, ByVal Y As Single)
If Len(TextBoxCaisse.Value) < 1 Then
TextBoxCaisse.BackColor = RGB(255, 0, 0) 'rouge
ErreurDesti 'joue un son Wave
MsgBox "Saisie non valide" & Chr(13) & "Cliquez dans la zone
Caisse et entrez un numéro de caisse valide.", vbCritical, "ERREUR !"
End If
Me.TextBoxCaisse.BackColor = &HC0FFFF
End Sub

Un extrait expurgé de mon fichier : 143Ko
http://cjoint.com/?cosSGzDmbo

Le même zippé : 43 Ko
http://cjoint.com/?cosTIe2vDB

Je souhaite vérifier que la valeur choisie dans ComboBoxLiaison
correspond bien aux 6 premiers caractères de l'un des items de
ListBoxLiaisonsAutorisées renvoyée par la saisie dans TextBoxSaisieC5
et dans le cas contraire, jouer un son Wave, effacer la valeur dans
TextBoxSaisieC5, le colorer en rouge et lui redonner le focus.
Si, en plus, en cas de correspondance, l'on pouvait soit mettre l'item
correspondant en surbrillance, soit modifier la couleur de sa police,
ce serait la cerise sur le gâteau !

en vous priant de m'excuser pour la longueur du post, je vous
remercie de l'avoir lue jusqu'au bout.

Bien cordialement


Avatar
Patrick BASTARD
Bonjour à tous.

Une recherche sur Google m'a renvoyé vers ma propre demande, avec la réponse
de Jean-Marc.

Ta réponse n'apparait pas sur ma machine, ni dans MPFE, ni dans MPFVB.
c'est la raison pour laquelle j'avais relancé.

J'ai maintenant du blé à moudre...

Mille fois merci à toi, Jean-Marc.

Bien cordialement,
--
P. Bastard

Avant d'imprimer ce mail, ayez une pensée pour les arbres.




Bonjour à tous.

Je relance, au cas où ...


je fais appel à vos lumières, car, malgré moult recherches, je n'ai
pas trouvé.

Sur l'UserForm1, entre autres :
Un ComboBoxLiaison (liste de données sur 6 caractères du genre
L21654) Un TextBoxSaisieC5 qui reçoit des données de 28 caractères via
lecteur codes à barres.
Un TextBoxPlomb qui reçoit des données de 11 caractères via lecteur
codes à barres)
Une ListBoxLiaisonsAutorisées alimentée par un champ calculé de ma
feuille en fonction de l'entrée dans TextBoxSaisieC5, de 23
caractères dont les 6 premiers sont des numéros de liaison du type
L21654. Une saisie dans TextBoxSaisieC5 place actuellement le
curseur dans TextBoxPlomb et vice versa, pour une saisie continue.

Je joins les codes de TextBox SaisieC5 ci-dessous qui fonctionnent :

Private Sub TextBoxSaisieC5_BeforeUpdate(ByVal Cancel As
MSForms.ReturnBoolean)
If Len(TextBoxSaisieC5.Value) <> 28 Then
TextBoxSaisieC5.BackColor = RGB(255, 0, 0) 'rouge
ErreurDesti 'joue un son Wave
MsgBox "Saisie non valide." & Chr(13) & "double cliquez dans
la zone saisie et resaisissez un code barre valide" & Chr(13) &
"Appuyez sur ESC pour annuler", vbCritical, "ERREUR !"
Cancel = True
End If
Me.TextBoxSaisieC5.BackColor = &HC0FFFF 'normal
Me.TextBoxSaisieC5.SelStart = 0
Me.TextBoxSaisieC5.SelLength = Len(Me.TextBoxSaisieC5)
End Sub

Private Sub TextBoxSaisieC5_Exit(ByVal Cancel As
MSForms.ReturnBoolean) Dim Cp
Cp = Mid(TextBoxSaisieC5, 4, 5)
TextBoxIATA = Application.VLookup(CLng(Cp),
Sheets("AGENCE").Range("a2:b100"), 2, 0)
With Sheets("BaseLR")
.Activate
.Range("BO8") = Me.TextBoxIATA
End With
Dim LR
LR = Sheets("BaseLR").Range("bs9:bs20")
Me.ListBox1.List = LR
'Me.TextBoxSaisiePlomb = "" '###########
End Sub

Private Sub TextBoxSaisieC5_MouseDown(ByVal Button As Integer, ByVal
Shift As Integer, ByVal X As Single, ByVal Y As Single)
If Len(TextBoxCaisse.Value) < 1 Then
TextBoxCaisse.BackColor = RGB(255, 0, 0) 'rouge
ErreurDesti 'joue un son Wave
MsgBox "Saisie non valide" & Chr(13) & "Cliquez dans la zone
Caisse et entrez un numéro de caisse valide.", vbCritical, "ERREUR !"
End If
Me.TextBoxCaisse.BackColor = &HC0FFFF
End Sub

Un extrait expurgé de mon fichier : 143Ko
http://cjoint.com/?cosSGzDmbo

Le même zippé : 43 Ko
http://cjoint.com/?cosTIe2vDB

Je souhaite vérifier que la valeur choisie dans ComboBoxLiaison
correspond bien aux 6 premiers caractères de l'un des items de
ListBoxLiaisonsAutorisées renvoyée par la saisie dans TextBoxSaisieC5
et dans le cas contraire, jouer un son Wave, effacer la valeur dans
TextBoxSaisieC5, le colorer en rouge et lui redonner le focus.
Si, en plus, en cas de correspondance, l'on pouvait soit mettre
l'item correspondant en surbrillance, soit modifier la couleur de sa
police, ce serait la cerise sur le gâteau !

en vous priant de m'excuser pour la longueur du post, je vous
remercie de l'avoir lue jusqu'au bout.

Bien cordialement




Avatar
Patrick BASTARD
Bonjour à tous.

Une recherche sur Google m'a renvoyé vers ma propre demande, avec la réponse
de Jean-Marc.

Ta réponse n'apparait pas sur ma machine, ni dans MPFE, ni dans MPFVB.
c'est la raison pour laquelle j'avais relancé.

J'ai maintenant du blé à moudre...

Mille fois merci à toi, Jean-Marc.

Bien cordialement,
--
P. Bastard

Avant d'imprimer ce mail, ayez une pensée pour les arbres.




Bonjour à tous.

Je relance, au cas où ...


je fais appel à vos lumières, car, malgré moult recherches, je n'ai
pas trouvé.

Sur l'UserForm1, entre autres :
Un ComboBoxLiaison (liste de données sur 6 caractères du genre
L21654) Un TextBoxSaisieC5 qui reçoit des données de 28 caractères via
lecteur codes à barres.
Un TextBoxPlomb qui reçoit des données de 11 caractères via lecteur
codes à barres)
Une ListBoxLiaisonsAutorisées alimentée par un champ calculé de ma
feuille en fonction de l'entrée dans TextBoxSaisieC5, de 23
caractères dont les 6 premiers sont des numéros de liaison du type
L21654. Une saisie dans TextBoxSaisieC5 place actuellement le
curseur dans TextBoxPlomb et vice versa, pour une saisie continue.

Je joins les codes de TextBox SaisieC5 ci-dessous qui fonctionnent :

Private Sub TextBoxSaisieC5_BeforeUpdate(ByVal Cancel As
MSForms.ReturnBoolean)
If Len(TextBoxSaisieC5.Value) <> 28 Then
TextBoxSaisieC5.BackColor = RGB(255, 0, 0) 'rouge
ErreurDesti 'joue un son Wave
MsgBox "Saisie non valide." & Chr(13) & "double cliquez dans
la zone saisie et resaisissez un code barre valide" & Chr(13) &
"Appuyez sur ESC pour annuler", vbCritical, "ERREUR !"
Cancel = True
End If
Me.TextBoxSaisieC5.BackColor = &HC0FFFF 'normal
Me.TextBoxSaisieC5.SelStart = 0
Me.TextBoxSaisieC5.SelLength = Len(Me.TextBoxSaisieC5)
End Sub

Private Sub TextBoxSaisieC5_Exit(ByVal Cancel As
MSForms.ReturnBoolean) Dim Cp
Cp = Mid(TextBoxSaisieC5, 4, 5)
TextBoxIATA = Application.VLookup(CLng(Cp),
Sheets("AGENCE").Range("a2:b100"), 2, 0)
With Sheets("BaseLR")
.Activate
.Range("BO8") = Me.TextBoxIATA
End With
Dim LR
LR = Sheets("BaseLR").Range("bs9:bs20")
Me.ListBox1.List = LR
'Me.TextBoxSaisiePlomb = "" '###########
End Sub

Private Sub TextBoxSaisieC5_MouseDown(ByVal Button As Integer, ByVal
Shift As Integer, ByVal X As Single, ByVal Y As Single)
If Len(TextBoxCaisse.Value) < 1 Then
TextBoxCaisse.BackColor = RGB(255, 0, 0) 'rouge
ErreurDesti 'joue un son Wave
MsgBox "Saisie non valide" & Chr(13) & "Cliquez dans la zone
Caisse et entrez un numéro de caisse valide.", vbCritical, "ERREUR !"
End If
Me.TextBoxCaisse.BackColor = &HC0FFFF
End Sub

Un extrait expurgé de mon fichier : 143Ko
http://cjoint.com/?cosSGzDmbo

Le même zippé : 43 Ko
http://cjoint.com/?cosTIe2vDB

Je souhaite vérifier que la valeur choisie dans ComboBoxLiaison
correspond bien aux 6 premiers caractères de l'un des items de
ListBoxLiaisonsAutorisées renvoyée par la saisie dans TextBoxSaisieC5
et dans le cas contraire, jouer un son Wave, effacer la valeur dans
TextBoxSaisieC5, le colorer en rouge et lui redonner le focus.
Si, en plus, en cas de correspondance, l'on pouvait soit mettre
l'item correspondant en surbrillance, soit modifier la couleur de sa
police, ce serait la cerise sur le gâteau !

en vous priant de m'excuser pour la longueur du post, je vous
remercie de l'avoir lue jusqu'au bout.

Bien cordialement




Avatar
Jean-marc
Patrick BASTARD wrote:
Bonjour à tous.



Hello,

Une recherche sur Google m'a renvoyé vers ma propre demande, avec la
réponse de Jean-Marc.

Ta réponse n'apparait pas sur ma machine, ni dans MPFE, ni dans MPFVB.
c'est la raison pour laquelle j'avais relancé.



C'est très curieux, ça ! Chez moi la réponse est apparu instantanément.
Peut être un souci avec ton provider de news ?

Sinon, voir éventuellement avec Google Groups ?


J'ai maintenant du blé à moudre...

Mille fois merci à toi, Jean-Marc.



Avec plaisir !

Bonne suite !

Cordialement;

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
1 2