XL 2016 Renvoi libellé en fonction d'un code produit

admin59

XLDnaute Nouveau
Bonjour,

J'ai dans un Userform un TextBox ( TextBox1) dans lequel je saisis des ID produits.
Depuis que j'ai modifié le format des ces ID produits, ils n'apparaissent plus dans la Label 7 du USERFORM ( libellé)
et donc dans l'onglet Réappro, deuxième colonne.
Cela fonctionne si je remplace les ID produits par 1, 2 ,3 etc.........

Ci joint fichier

Si vous aviez une piste, cela me serait d'un grand secours,

D'avance merci,

Cordialement
 

Pièces jointes

  • Fichier national prets clients.xlsm
    55.2 KB · Affichages: 12

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Admin,
Juste une question stupide:
La ligne dans Sub TextBox1_Change ( ligne 82 ) est en erreur. Que veut dire CLng(TextBox1."""SRX""000") ?

Si on a CLng(TextBox1.Text) c'est que dans Text1Box on a un nombre, or ID n'est pas un nombre mais un texte, donc CLng(TextBox1.Text) est en erreur;
Si avant ID était un nombre, je suppose, alors il faut retrouver la même chose.
Une possibilité serait :
VB:
Label7.Caption = Worksheets("BD produits").Cells(CLng(Right(TextBox1.Text, 3)) + 1, "B").Value
Si ID de SRX001 avant était 001. On ne prends que les 3 caractères à droite.

Avec cette modif, ça ne plante plus et ça réponds quelque chose dans Label7. Ensuite à savoir si c'est ce que vous attendez ??? :)
 

Pièces jointes

  • Fichier national prets clients.xlsm
    46 KB · Affichages: 4

admin59

XLDnaute Nouveau
Bonjour Admin,
Juste une question stupide:
La ligne dans Sub TextBox1_Change ( ligne 82 ) est en erreur. Que veut dire CLng(TextBox1."""SRX""000") ?

Si on a CLng(TextBox1.Text) c'est que dans Text1Box on a un nombre, or ID n'est pas un nombre mais un texte, donc CLng(TextBox1.Text) est en erreur;
Si avant ID était un nombre, je suppose, alors il faut retrouver la même chose.
Une possibilité serait :
VB:
Label7.Caption = Worksheets("BD produits").Cells(CLng(Right(TextBox1.Text, 3)) + 1, "B").Value
Si ID de SRX001 avant était 001. On ne prends que les 3 caractères à droite.

Avec cette modif, ça ne plante plus et ça réponds quelque chose dans Label7. Ensuite à savoir si c'est ce que vous attendez ??? :)
Tout d'abord merci pour votre retour,

En fait, je souhaite remplacer les ID au format ( voire classeur ci joint avec ID d'origine) 1 , 2 et 3 par SRX001,SRX002 etc, mais cela génère des erreurs sur le label caption 7
Je n'arrive pas à trouver de solution

Cordialement
 

Pièces jointes

  • Fichier national prets clients.xlsm
    57.8 KB · Affichages: 4

sylvanu

XLDnaute Barbatruc
Supporter XLD
Si vous voulez que l'utilisateur entre SRX001 alors vous mettez :
VB:
Private Sub TextBox1_Change()
    If Len(UserForm1.TextBox1) < 6 Then Exit Sub
    Label7.Caption = Worksheets("BD produits").Cells(CLng(Right(TextBox1.Text, 3)) + 1, "B").Value
End Sub
Tant qu'il n'a pas entré 6 caractères la fonction est invalide.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Un essai en PJ.
L'utilisateur doit rentrer 6 caractères pour l'ID.
Si l'ID n'existe pas un msgbox prévient l'utilisateur.
VB:
Private Sub TextBox1_Change()
    If Len(UserForm1.TextBox1) < 6 Then Exit Sub
    If Application.CountIf(Sheets("BD produits").Range("A:A"), UserForm1.TextBox1) = 0 Then     ' si l'ID n'existe pas
        MsgBox " L' ID " & UserForm1.TextBox1 & " n'existe pas."
        UserForm1.TextBox1 = ""
    Else                                                                                        ' sinon on actualise label7
        Position = Application.Match(UserForm1.TextBox1, Sheets("BD produits").Range("A:A"), 0)
        Label7.Caption = Worksheets("BD produits").Cells(Position, "B")
    End If
End Sub
 

Pièces jointes

  • Fichier national prets clients (5).xlsm
    46.4 KB · Affichages: 1

admin59

XLDnaute Nouveau
Rebonjour

Mes excuses pour ce malentendu car mes connaissances sont vraiment très limitées.....
J'ai bien testé votre code et il fonctionne
Je ne veux pas récupérer 001 par et garder les 6 caractères
Je voudrais seulement savoir par quoi remplacer

i = CLng(TextBox1.Value) qui me renvoie une erreur

Cordialement
Emmanuel
 

Discussions similaires

Statistiques des forums

Discussions
315 127
Messages
2 116 538
Membres
112 774
dernier inscrit
Foudil59