Erreur 13 et ajout de contrôle sur une textbox

Bonjour,

Ce message fait suite au problème que j'avais rencontré ici : https://forum.excel-pratique.com/excel/recuperer-coordonnees-recherchev-vba-t86886.html

J'ai grace aux personnes qui m'avait répondus pu avancer sur mon projet.

Je bloque néanmoins sur 3 problèmes que je n'arrive pas à résoudre :

- Quand je clique sur un des boutons présents sur la page menu (ajouter du stock, supprimer du stock, historique et consultation d'un article je rencontre lors du passage au second userform une erreur 13 que je n'arrive pas à résoudre. Ce qui est bizarre c'est que parfois, sans que je me l'explique, ça fonctionne.

-J'aimerai également lors de la saisi dans "ajout d'un nouveau produit" faire un controle sur le fait que la quantité en stock et le seuil d'alerte soit bien du type entier positif, j'ai essayé plusieurs solutions glanées ici et la sans succès.

- La 3ème chose étant la possibilité d'avoir depuis le menu un bouton permettant de consulter les articles dont le nombre de quantité en stock et inférieur au seuil d'alerte et je ne sais pas du tout comment m'y prendre.

Merci de votre aide

21stockv2-1.xlsm (65.62 Ko)

Bonjour,

- Quand je clique sur un des boutons présents sur la page menu (ajouter du stock, supprimer du stock, historique et consultation d'un article je rencontre lors du passage au second userform une erreur 13 que je n'arrive pas à résoudre. Ce qui est bizarre c'est que parfois, sans que je me l'explique, ça fonctionne.

Dans les Userforms Ajoutproduit, supprimer, historique et consultation, modifiez les codes Initialize comme ci-dessous

Private Sub UserForm_Initialize()
ComboBox1.List = Sheets("Adhérent").Range("A2:A10000").Value
End Sub

Dans l'userform ajoutproduit modifiez comme suit :

Private Sub Cbn_Valider_Click()
If ComboBox1.ListIndex = -1 Then Exit Sub
lig = WorksheetFunction.Match(CLng(ComboBox1.Value), Sheets("Adhérent").Range("A:A"), 0)
Unload Me
Ajoutproduit2.Show
End Sub

Même code à adapter pour les autres userform

Cordialement

Merci, ça fonctionne correctement, j'ai mis en pièce jointe le fichier que j'ai modifié.

Est ce que tu me dire ce qui ne fonctionnait pas dans le code précédent?

Merci

12stockv2-1.xlsm (67.08 Ko)

Mon projet avance mais je suis maintenant bloqué car je n'arrive pas à faire correctement ce que je souhaite :

Dans la page d'accueil je souhaite afficher dans la listebox de droite la liste des produits dont la quantité en stock est inférieur au seuil de commande. J'ai bidouillé un truc avec ce que j'ai trouvé ici et là mais ça ne fonctionne pas, rien ne s'affiche mais il y a pas de message d'erreur.

Toujours sur la page d'accueil dans le bouton historique j'arrive à mettre un menu déroulant avec les différentes références et lors du clique sur valider je souhaiterais qu'un nouvelle userform s'affiche avec l'historique du produit en question, est la c'est un echec complet. J'ai cherché sur internet différentes solutions, dont celle du spreadsheet mais ça ne doit pas fonctionner sous office 2016.

Est ce que quelqu'un à une idée?

Merci

Re

Dans la page d'accueil je souhaite afficher dans la listebox de droite la liste des produits dont la quantité en stock est inférieur au seuil de commande. J'ai bidouillé un truc avec ce que j'ai trouvé ici et là mais ça ne fonctionne pas, rien ne s'affiche mais il y a pas de message d'erreur.

Faut déclarer les variables...

Private Sub UserForm_Initialize()
Dim i As Integer
With Sheets("Base")
    For i = 2 To .Range("A" & .Rows.Count).End(xlUp).Row
        If .Range("D" & i).Value > .Range("E" & i).Value Then
            ListBox1.AddItem .Range("A" & i).Value
        End If
    Next i
End With
End Sub

edit : j'ai modifié le code

Merci pour ta réponse, effectivement ça marche mieux

Plus qu'un soucis à résoudre car j'ai avancé également de mon côté :

- Et le contrôle des nombres entiers positifs lors de la saisi du stock.

J'ai mis la dernière version du fichier en pièce jointe

Mot de passe administrateur : admin

J'ai finalement réussi à trouver la solution avec le code suivant :

Private Sub TextBox3_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If InStr("1234567890", Chr(KeyAscii)) = 0 Then KeyAscii = 0

Il me reste un dernier problème.

Je souhaite avoir la possibilité de supprimer un article et donc une ligne dans une des feuilles en fonction du numéro de l'article. J'ai codé quelque chose mais ça ne fonctionne pas. Il n'y a pas d'erreur et le message de confirmation ainsi que l'historique sont ok. Il doit y avoir un problème dans le code de suppression.

J'ai mis le dernier fichier en pièce jointe. Le mot de passe administrateur nécessaire pour accéder au classeur via le menu administrateur est "admin"

Merci de votre aide

23stock.xlsm (116.90 Ko)

Re

Je souhaite avoir la possibilité de supprimer un article et donc une ligne dans une des feuilles en fonction du numéro de l'article. J'ai codé quelque chose mais ça ne fonctionne pas. Il n'y a pas d'erreur et le message de confirmation ainsi que l'historique sont ok. Il doit y avoir un problème dans le code de suppression.

Je ne vois pas de problème à ce sujet

Merci d'expliquer

Pour ce qui est du code pour ne faire que des chiffres positifs, vous pouvez aussi essayer ceci dans lUSF ajoutProduit2

Private Sub TextBox3_Change()
If FlgModif Then Exit Sub
With TextBox3
    If .Value < 0 Or IsNumeric(.Value) = False Then
        FlgModif = True
        MsgBox "Vous ne pouvez utiliser des lettres ou chiffres negatifs !"
        .Value = ""
        .SetFocus
    End If
End With
FlgModif = False
End Sub

Cordialement

Rechercher des sujets similaires à "erreur ajout controle textbox"