Contrôle de cohérence choix combobox et items listbox

Victor21

XLDnaute Barbatruc
Bonsoir le forum.

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 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 !

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

Code:
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
Il ne m'est actuellement pas possible de joindre un exemple de mon fichier (trop volumineux), mais si besoin était, je pourrais l'alléger et supprimer ce qui ne concerne pas cette question.

Je sais cette question difficile et, en vous priant de m'excuser pour la longueur du post, je vous remercie de l'avoir lue jusqu'au bout.

Bien cordialement
 

Victor21

XLDnaute Barbatruc
Re : Contrôle de cohérence choix combobox et items listbox

Bonsoir, skooby, le forum.

Je travaille à alléger mon fichier, sans le dénaturer, et reviendrai alors le soumettre à votre sagacité.
;)
Mais probablement pas avant samedi.

Merci en tous cas pour ton intérêt.

Bien cordialement,

Patrick.
 

Pièces jointes

  • TestOscar.zip
    42.1 KB · Affichages: 64
Dernière édition:

Victor21

XLDnaute Barbatruc
Re : Contrôle de cohérence choix combobox et items listbox

Bonsoir, skooby, le forum.

J'espère ne pas contrevenir aux règles de ce forum en repostant.

Je re-poste parce qu'après modification du précédent (l'ajout du fichier joint), je m'aperçois qu'il ne s'affiche pas en non lu sur le forum.

Merci de m'excuser et me le faire savoir si c'était le cas.

Bien cordialement,
 

Discussions similaires

Réponses
2
Affichages
187

Statistiques des forums

Discussions
312 613
Messages
2 090 231
Membres
104 453
dernier inscrit
benjiii88