Imposer une saisie par rapport a une fichier dans une combobox sinon bloquer le code

CATA56

XLDnaute Nouveau
Bonjour le Forum,

Je vous joins un fichier pour comprendre mon problème.
J'ai une combobox1 qui vient chercher une liste d'articles dans un onglet "bdarticle".
Une fois le choix effectué, il rapatrie les informations dans le USF et on vient compléter les données manquantes (qté et date de livraison).
Jusque là ça va.
Le problème est, si ma recherche dans ma combobox1 par saisie semi-auto n'est pas conforme à un article de la liste de mon fichier, dans ce cas il me met un message d'erreur sur le calcul demandé au niveau des PU.
Donc, ma question est :
Comment bloquer le rapatriement des infos si l'article de la combobox1 n'existe pas et annoncer un message type (Merci de créer le code article ou de faire une autre recherche, SVP.)
Toute autre solution sera la bienvenue.
Merci pour votre aide.
A bientôt

CATA56
 

Pièces jointes

  • test7.xlsm
    100.3 KB · Affichages: 52

Bebere

XLDnaute Barbatruc
Re : Imposer une saisie par rapport a une fichier dans une combobox sinon bloquer le

bonjour Cata
ajout d'une textbox pour recherche,résultat dans combobox1
msgbox si caractère entré pas trouvé
à bientôt
 

Pièces jointes

  • classeurcata.zip
    74.8 KB · Affichages: 33

CATA56

XLDnaute Nouveau
Re : Imposer une saisie par rapport a une fichier dans une combobox sinon bloquer le

Bonjour Bebere, Bonjour le Forum,

Merci pour ce code, mais cette solution qui fonctionne parfaitement, n'est pas très agréable visuellement dans le sens ou il faut faire un début de recherche dans la textbox et cliquer au fur et à mesure sur la combobox pour obtenir le résultat ou les choix possibles.

Ma recherche se situe plutôt sur un msg en cas de mauvaise saisie sur la combobox sans envoyer de message d'erreur... mais je pense que tu avais bien cerné ma problématique. L'idéale est de réunir ta solution dans le même combobox. Mais la je sèche.

Merci pour une nouvelle idée si tu en as une.
Je continu à rechercher de mon côté.

A bientôt

CATA56
 
G

Guest

Guest
Re : Imposer une saisie par rapport a une fichier dans une combobox sinon bloquer le

Bonjour,

Essaie ceci:

Code:
Private Sub ComboBox1_Change()
    If ComboBox1.ListIndex > -1 Then
        With Sheets("bdarticle")
            TextBox133 = .Cells(ComboBox1.ListIndex + 4, 8)
            TextBox11 = .Cells(ComboBox1.ListIndex + 4, 9)
            TextBox17 = .Cells(ComboBox1.ListIndex + 4, 10)
            TextBox13 = .Cells(ComboBox1.ListIndex + 4, 13)
            TextBox18 = .Cells(ComboBox1.ListIndex + 4, 14)
        End With
    Else
        TextBox133 = ""
        TextBox11 = ""
        TextBox17 = ""
        TextBox13 = ""
        TextBox18 = ""
    End If
End Sub

Tu peux mettre éventuellement un MsgBox après le else et avant le EndIF ou TextBox133 = "article non trouvé"

A+
 
Dernière modification par un modérateur:

CATA56

XLDnaute Nouveau
Re : Imposer une saisie par rapport a une fichier dans une combobox sinon bloquer le

Bonjour Hasco,

Super, c'est ce que je cherchais. J'ai ajouter un message comme tu me l'indiquais.
Par contre quand la cas est vide, il me met également le message. Faut il jouer sur:

If ComboBox1.ListIndex > -1 Then

mais comment?

A+
 
G

Guest

Guest
Re : Imposer une saisie par rapport a une fichier dans une combobox sinon bloquer le

Re,

Code:
Private Sub ComboBox1_Change()
  If ComboBox1.ListIndex > -1 Then
         With Sheets("bdarticle")
             TextBox133 = .Cells(ComboBox1.ListIndex + 4, 8)
             TextBox11 = .Cells(ComboBox1.ListIndex + 4, 9)
             TextBox17 = .Cells(ComboBox1.ListIndex + 4, 10)
             TextBox13 = .Cells(ComboBox1.ListIndex + 4, 13)
             TextBox18 = .Cells(ComboBox1.ListIndex + 4, 14)
         End With
     Else
         TextBox133 = ""
         TextBox11 = ""
         TextBox17 = ""
         TextBox13 = ""
         TextBox18 = ""
        If Trim(ComboBox1.Text) <> "" Then
            MsgBox "message"
            TextBox133 = "article non trouvé" 'Faculatif
        End If
     End If

Ici on met le message dans TextBox133 après avoir affiché par msgbox.
Personnellement je préfère l'affichage dans un textbox que par msgbox, c'est moin invasif.

P.S. pour tout ce qui est comptabilité et opération tarifaires il vaut mieux utiliser CCur(valeur) que Csng(Valeur)
Dans la fenêtre d'éxécution tapes:
?csng("1456123,4567812")
Tape [Entrer]
Puis
?CCur("1456123,4567812")
Tape[Enter]
et tu verras la différence que cela peut faire.
A+
 
Dernière modification par un modérateur:

Discussions similaires

Réponses
4
Affichages
2 K
Compte Supprimé 979
C

Statistiques des forums

Discussions
312 590
Messages
2 090 040
Membres
104 354
dernier inscrit
Chass