Conditions pour remplir listbbox et tb

Bonjour,

Petite modification dans mon formulaire que Rag m'a grandement aidé à faire

J'avais au début une cbb pour mes n°de bon qui étaient concaténés avec les initiales mais je me suis rapidement rendu compte que j'aurais eu une cbb interminable.

Du coup, je suis passé sur une textbox. Si j'indique un n° de bon qui existe déjà, le bâtiment se complète tout seul ( cela fonctionne).

Actuellement,la listbox, la date et la remarque se complètent aussi mais je ne veux pas que ça soit le cas. Je veux qu'elle retrouve les informations correspondantes uniquement quand le n°de bon ET l'initial sont indiqués.

Donc:

Le bâtiment est d'office relié au n° de bon.

La listbox, la textbox "remarque" et "date" est relié au n° de bon + initial. Et si pas de correspondance trouvée, ça n'affiche rien.

J'espère que c'est assez clair

Merci !

11stock-copie.xlsm (93.67 Ko)

Bonjour

Je veux qu'elle retrouve les informations correspondantes uniquement quand le n°de bon ET l'initial sont indiqués.

Essayez en modifiant comme ceci :

- Dans le code Private Sub TextBox9_Change(), juste en dessous de for i = 17 to lnglastrowsmouv, changez cette ligne :

If .Cells(i, "D") = strNumBS And TextBox11.Value = .Cells(i, "F").Value Then

- Dans le code Private Sub TextBox11_Change() juste en dessous de la ligne Dim cel as range, ajoutez cette ligne

Call TextBox9_Change

Pour la remarque, l'info vient de quelle colonne ?
Pour la date, à la vue de votre fichier, la date est identique pour chaque bon de commande. Donc elle peut être affichée directement quelque soit la valeur de Initiales. Si je ne me trompe, elle est d'ailleurs en correspondance à votre bon de commande et pas à la valeur de Initiale

Cordialement

Bonjour,

Cela à l'air de fonctionner au top. En effet dans l'exemple la date est toujours identique sur un même n° de bon mais cela peut ne pas être le cas.

La date doit donc aussi être reliée au n°bon + initial.

Quand à la remarque, elle se trouve en colonne N, qui est masquée car elle peut être assez longue. J'ai donc ma colonne M qui indique s'il y a une remarque ou non.

Et je cherchais d'ailleurs à directement affiché la remarque associée en sélectionnant la cellule M adjacente, plutôt que d'aller devoir écrire le n°bon et initial dans le formulaire. Je suppose qu'une infobulle n'est pas possible , et doit me contenter d'une msgbox ?

Merci beaucoup,

Cela à l'air de fonctionner au top. En effet dans l'exemple la date est toujours identique sur un même n° de bon mais cela peut ne pas être le cas.

Ok mais par exemple mettons que l'on a ceci
- bon de cde D18 et D19 identique : 2021/1
- date en C18 et C19 différentes : 20/09/21 et 21/09/21
- IN identiques : AA
J'entre 2021/1 et AA --> La textbox date doit prendre quelle valeur ?

Mmh..En effet !

Ca peut compliquer les choses..

Admettons qu'en temps normal :

N° de bon + IN --> récupère la date et la remarque correspondante

MAIS:

'si n°bon = 2021/10, ne pas indiquer de date

If TextBox9.Value = "2021/10" Then 
Textbox1.Value = ""
End If

Et après l'entrée de la date, il recherche s'il existe une remarque correspondante aux 3 critères. (n°bon, initiale et date). Parce que sinon je ne peux pas différencier les remarques.

C'est vraiment un cas particulier pour 2 ou 3 n° de bon précis, qui sont définis en début d'année.

Je ne sais pas si c'est envisageable.

Merci,

Une question : est-ce que vous pouvez avoir 2x le même Code OA sur un même bon de commande ?

Cette question car vous pourriez peut être afficher la date et remarque en fonction du click sur une donnée dans la listbox

Oui il peut y avoir plusieurs fois le même code pour le même n° de bon

Ok. Mais quid de l'idée proposée dans mon post précédent ?

Le clic dans la listbox ?

Si on peut procéder autrement je préfère car j'ai pas des génies de l'informatique parmi mes collègues et devoir cliquer dans une zone comme une listbox qui ne ressemble ni à un bouton ou une case à remplir ils vont avoir les neurones qui fument

Ce que j'ai proposé est compliqué à mettre en place ? Ou risque de conflit dans les données ?

Et concernant l'affichage de la remarque,j'ai une msgbox du coup quand je sélectionne ma cellule en colonne M, pas d'autres alternative à me proposer éventuellement ?

Merci !

Ce que j'ai proposé est compliqué à mettre en place ? Ou risque de conflit dans les données ?

Non c'est juste que lorsque vous entrerez le num de commande puis l'initiale, le code prendra la première date et donc remarque trouvées.

Regardez la ligne 18 et 19 dans votre fichier. Vous avez deux fois le même num de cde et deux fois la même initiale; le code prendra la première date et remarque trouvée dans la ligne 18, alors que vous voulez peut être avoir les infos de la ligne 19 qui reprend la même date et mais avec une remarque différente

Vous comprenez ?

Oui je comprends bien,

En reprenant l'exemple des lignes 18 et 19, ça n'a pas d'importance, la date et une éventuelle remarque seront d'office identiques.

N°bon + in ==> date et remarque (dans 99.9% des cas)

Je souhaiterais juste une exception pour un n° de bon précis pré-établi où il faudait également indiquer la date .

N°bonINDATEREMARQUE
2021/10AA20/09remarque A
2021/10AA30/09remarque B

Donc dans le formulaire, en mettant ce n° de bon 2021/10 (par ex) ainsi que l'initiale, la date ne se mettrait pas automatiquement mais je devrai la compléter moi-même. Ainsi je pourrai définir une autre remarque. Et si à l'avenir je rentre à nouveau ces données :

2021/10AA30/09

il me retrouvera la remarque associée.

Peut-être pas simple à comprendre mon but je sais, mais difficile à expliquer aussi dans quel cas cela pourrait me servir.

Bonjour,

Dans la macro Private Sub TextBox9_Change() juste en dessous de la ligne If Not cel Is Nothing Then, remplacez cette ligne

Me.TextBox1 = cel.Offset(0, -1)

par

If Right(TextBox9.Value, 2) <> 10 Then Me.TextBox1 = cel.Offset(0, -1)

L'instruction RIGHT est utilisée pour prévoir le changement d'année dans le num du bon

J'ai aussi vu que vous avez deux fois les mêmes lignes dans deux macros pour le "Rafraichissement listbox pour n° de bon". Vous auriez pu faire un seul code je pense mais voyez déjà si cela fonctionne avec la proposition ci-dessus

Crdlt

Bonjour,

Cela fonctionne, la date ne s'affiche pas avec 2021/10. Il faudrait alors maintenant que la remarque s'affiche quand la date est indiquée. Toujours uniquement que pour ce bon.

J'ai aussi vu que vous avez deux fois les mêmes lignes dans deux macros pour le "Rafraichissement listbox pour n° de bon". Vous auriez pu faire un seul code je pense mais voyez déjà si cela fonctionne avec la proposition ci-dessus

Sans doute mais je n'en suis pas capable donc ça peut rester comme ça

Cela fonctionne, la date ne s'affiche pas avec 2021/10. Il faudrait alors maintenant que la remarque s'affiche quand la date est indiquée. Toujours uniquement que pour ce bon.

Cela peut fonctionner à la condition que vous n'avez pas la même date pour un même bon...
exemple dans votre fichier la ligne 20 et 21 voient un même bon et une même date. Dans ce cas le code ne prendra que la remarque en ligne 20.

Ha oui!

Ainsi que la listbox également

Donc, pour le bon 2021/10, il faut indiquer l'initial et la date pour retrouver la remarque et les sorties correspondantes dans la listbox.

Et après ça sera bon

Merci à vous !

Cela peut fonctionner à la condition que vous n'avez pas la même date pour un même bon...

exemple dans votre fichier la ligne 20 et 21 voient un même bon et une même date. Dans ce cas le code ne prendra que la remarque en ligne 20.

Exact , mais dans le cas présent, l'initiale est identique donc ça ne me pose pas de problème.

Mais en effet, pour le moment la remarque s'affiche dès que le n° de bon est indiqué. Il faudrait qu'elle le soit après que le n° de bon et l'initial soit mis.

Je vais essayer de récapituler sans me tromper :

Pour le bon unique 2021/10:

il faut indiquer l'initial et la date pour trouver la remarque et les sorties correspondantes.

Pour tous les autres n°de bon:

Il faut indiquer l'initial pour trouver la date, la remarque et les sorties correspondantes.

Donc dans l'exemple des lignes 20 et 21, cela n'a pas d'importance puisque la remarque sera identique sur les 2 lignes. Certes la remarque se répétera mais cela n'est pas bien grave.

Donc, pour le bon 2021/10, il faut indiquer l'initial et la date pour retrouver la remarque et les sorties correspondantes dans la listbox.

Le problème est que vous devez envisager le doublon. Le seul élément unique dans votre tableau qui permet de fonctionner correctement.est celui de la colonne ID Mais on ne peut utiliser cette donnée qu'au travers de la listbox.
D'où l'idée que j'avais d'utiliser la sélection dans la listbox pour vous renvoyer les bonnes données dans les textbox Remarque, Date, et batiment
De là, vous modifiez ce que vous voulez puis en validant vous ajoutez une nouvelle ligne

Cela me parait plus simple à l'utilisation, il me semble

L'élément unique sera la date non ?

Je peux avoir:

2021/10AA0A-1021/09remarque A
2021/10AA0A-1021/09remarque A

ou

2021/10AA0A-1021/09remarque A
2021/10AA0A-1030/09remarque B

Mais je n'aurai jamais :

2021/10AA0A-1021/09remarque A
2021/10AA0A-1021/09remarque B

Si la remarque est différente, c'est que la date le sera forcément. La date peut donc me permettre de trouver la remarque ainsi que les sorties d'articles. Me tromperais-je ?

Après, si vous pensez que votre idée est plus adéquate, je veux bien voir parce que je dois reconnaître que je ne vois pas bien comment cela fonctionnera.

Après, si vous pensez que votre idée est plus adéquate, je veux bien voir parce que je dois reconnaître que je ne vois pas bien comment cela fonctionnera.

Juste pour vous répondre à votre question.

L'idée était d'entrer le num de bon et les initiales. Cela vous affiche uniquement les données existantes dans la listbox.
En choisissant une ligne dans la listbox, cela vous afficherait la date, le bâtiment et la remarque si elle existe et faire votre modification si vous le désirez

Edit : vous seriez sûr des données affichées dans ce cas

Et cela serait que pour le bon unique ou pour tous les autres également ?

Je me rends compte que je ne l'ai pas précisé jusqu'à présent mais le but de pouvoir indiqué une remarque sera surtout utile pour le bon unique car justement je n'aurai pas de n° de bâtiment à associer, et cela me permettra de mettre des infos utiles. (C'était juste pour info)

Rechercher des sujets similaires à "conditions remplir listbbox"