Condition qui ne fonctionne pas correctement

Azuder

XLDnaute Nouveau
Bonjour,

Je suis actuellement en train de coder un projet de facturation.

Jusqu'à maintenant je n'avais pas de soucis majeur, cependant j'arrive à un problème que je n'arrive pas à résoudre (mais je ne baisse pas les bras).

Lors de la création d'une nouvelle facture, il faut vérifier si la quantité rentrée pour chacun des produits est supérieur à la quantité en stock (c'est ici qu'il faut afficher le message d'erreur pour que l'utilisateur puisse retaper une quantité).

Je vous transmets mon fichier pour que vous puissiez comprendre :VBA

Merci
 

alex67800

XLDnaute Impliqué
Re : Condition qui ne fonctionne pas correctement

Bonjour,
je n'ai peut-être pas tout compris, mais c'est ton bouton Bc-save qui appel la fonction vérif (call VerifB).

Je suppose que celle-ci doit comparer l'état du stock dans la feuille Stock justement non?

si tel est le cas il faut préciser sur quelle feuille il doit faire la recherche.

Actuellement c'est sur BDD, que se fait la requête, si je ne me trompe.

Maintenant je me trompe peut-être.
 

Azuder

XLDnaute Nouveau
Re : Condition qui ne fonctionne pas correctement

En fait mon problème c'est que j'ai mis une condition dans mes _Change (pour les zones de texte concernant les quantités).

Cependant ça ne fonctionne pas du tout.

Où dois-je mettre mes conditions ? (j'ai essayé de les ajouter à ma procédure VerifB mais rien ne change).

Je continue de chercher, si quelqu'un a une idée qu'il n'hésite pas.
 

BERRACHED said

XLDnaute Accro
Re : Condition qui ne fonctionne pas correctement

Salut,Azuder,alex67800

Une autre solution,il faut ajouter a chaque Article une Label qui capte la quantité en Stock,puis tu fait un test de comparaison du genre :

On Error GoTo Sortie
Quantite = CGR1
Stock = LabelStock
If Quantite > Stock Then
MsgBox "La quantité demandée " & CGR1 & " est supérieur au stock " _
& LabelStock, vbCritical, "Facturation => Stock Insuffisant"


Cordialement
 

alex67800

XLDnaute Impliqué
Re : Condition qui ne fonctionne pas correctement

Bonsoir,
Essai ceci:https://www.excel-downloads.com/threads/comparer-un-textbox-avec-la-valeur-dune-cellule.3354/

J'ai fait un test avec CGR1 avec le code en lien:
Code:
Private Sub BC_Save_Click()
If NomClt.Value = "" Then
        MsgBox "Veuillez indiquer le nom du client !", vbInformation + vbOKOnly
        Exit Sub
End If

Dim pages As Double
Dim MaRange As Range
Set MaRange = ThisWorkbook.Sheets("Stock").Range("C8")

If Not IsNumeric(CGR1) Then
MsgBox "La Valeur de la CGR1 n'est pas Numérique", vbCritical, "Erreur de saisie"
Exit Sub
End If
pages = MaRange
If pages <= CGR1 Then
MsgBox "Vous ne disposez pas du stock nécessaire pour le produit CGR1 !", vbCritical, "Erreur de saisie"
CGR1 = "0"
CGR1.SetFocus
Exit Sub
End If
 
    Sheets("BDD").Activate
    
    L = 2
    
    While Cells(L, 2) <> ""
    L = L + 1
    Wend
    
    Num_Fct = Cells(L, 1)
    
    If CGR1.Value + CGR5.Value + CGR10.Value + CT1.Value + CT5.Value + CT10.Value + CGA1.Value + CGA5.Value + CGA10.Value + AAP1.Value + AAP5.Value + AAP10.Value + AAC1.Value + AAC5.Value + FL1.Value + FL5.Value = 0 Then
        MsgBox "Une facture ne peut pas être égal à 0 !", vbCritical + vbOKOnly
    ElseIf CGR1.Value = "" Or CGR5.Value = "" Or CGR10.Value = "" Or CT1.Value = "" Or CT5.Value = "" Or CT10.Value = "" Or CGA1.Value = "" Or CGA5.Value = "" Or CGA10.Value = "" Or AAP1.Value = "" Or AAP5.Value = "" Or AAP10.Value = "" Or AAC1.Value = "" Or AAC5.Value = "" Or FL1.Value = "" Or FL5.Value = "" Then
        MsgBox "Une facture ne peut pas être vide ! Mettez 0 pour les produits non désirés !", vbCritical + vbOKOnly
    Else
       
    Cells(L, 2).Value = NomClt.Value
    Cells(L, 3).Value = Jour.Value
    Cells(L, 4).Value = CGR1.Value
    Cells(L, 5).Value = CGR5.Value
    Cells(L, 6).Value = CGR10.Value
    Cells(L, 7).Value = CT1.Value
    Cells(L, 8).Value = CT5.Value
    Cells(L, 9).Value = CT10.Value
    Cells(L, 10).Value = CGA1.Value
    Cells(L, 11).Value = CGA5.Value
    Cells(L, 12).Value = CGA10.Value
    Cells(L, 13).Value = AAP1.Value
    Cells(L, 14).Value = AAP5.Value
    Cells(L, 15).Value = AAP10.Value
    Cells(L, 16).Value = AAC1.Value
    Cells(L, 17).Value = AAC5.Value
    Cells(L, 18).Value = FL1.Value
    Cells(L, 19).Value = FL5.Value
    Cells(L, 20).Value = Paiement.Value
    Cells(L, 21).Value = ZT_R.Value
End If

Call Base

Call VerifB



End Sub
cela fonctionne. Tu constateras le contrôle numérique ce fait également à ce niveau
Par contre j'ai un bug avec call Base, car avant de faire le call, tu active la feuille "BDD", donc j'ai rajouté dans le Sub Base, sheets("Stock").activate et là le code se poursuit correctement avec call VerifB.

La solution de BERRACHED said me semble pas mal également, j'avoue je ne l'ai pas testé.;), sans rancune Said.
 

Azuder

XLDnaute Nouveau
Re : Condition qui ne fonctionne pas correctement

J'ai testé ton morceau de code Alex.

Il fonctionne pas correctement chez moi :s

Je m'explique :

Ma quantité en stock est de 20 000 unités, lorsque je mets "1" ou "2" dans ma zone de texte produit, cela fonctionne. Mais lorsque je mets tous les chiffres supérieurs à "2" ça me met le message d'erreur, alors qu'il ne devrait pas apparaître :s

Je continue de travailler dessus.
 

alex67800

XLDnaute Impliqué
Re : Condition qui ne fonctionne pas correctement

Bonjour Azuder,
Quand tu dis tous le chiffres supérieur à 2, de quoi parles tu? Chez moi cela fonctionne. Si CGR1 est inférieur au stock pas de message, si supérieur alors message.

Les labels tu les a déjà ils sont à coté de tes textbox : Label 41 pour textbox CGR1.

A te lire.
 

Azuder

XLDnaute Nouveau
Re : Condition qui ne fonctionne pas correctement

J'ai enfin compris d'où venait mon problème (grâce à un ami qui m'a accordé, comme vous, de son temps :)).

J'ai stocké le contenu de chacune de mes cellules stock dans des variables que j'ai déclarées en Integer.

Ensuite dans mes _Change, j'ai vérifier si la valeur saisie est > à la variable stock du produit concerné.

Cela fonctionne très bien.

Merci de m'avoir apporter plusieurs solutions :)
 

Discussions similaires

Statistiques des forums

Discussions
312 412
Messages
2 088 195
Membres
103 763
dernier inscrit
p.michaux