Problème utilisation Application.Match logiciel librairie

Bonjour,

après moult recherches et lectures de sujets , je vous soumets mon cas. J'essaie de réaliser un petit logiciel de gestion de stock et caisse pour une petite librairie de quartier. Je bloque sur la partie ou je souhaite que la quantité stock soit automatiquement diminuée lorsqu'une opération de caisse est enregistrée. Avec la fonction VlookUp, j'arrive à retrouver la quantité correspondant à l'item selectionné, mais impossible de faire marcher la fonction Application.Match pour récupérer le numéro de la ligne correspondante et donner l'instruction que la quantité se trouvant sur cette ligne et à la colonne donnée soit minorée de x unité.

Je suis débutant en vba, je vous prie donc de m'excuser pour le codage qui ne doit pas être très beau à voir.

Je suis disponible pour toute question.

En pièce jointe le fichier.

En vous remerciant d'avance

Cordialement

Bonsoir,

Plusieurs remarques :

1- la fonction "Match" requiert un tableau de valeurs et non une plage. Ce tableau doit ensuite correspondre à une colonne ou à une ligne

2- comme vous utilisez des objets tableau, il est plus simple et plus clair d'en utiliser les propriétés au niveau du code

3- il serait bon d'indenter votre code correctement afin d'en avoir une meilleure visibilité

ci-dessous exemple de code pour retirer 1 de votre stock :

    Dim Couleur
    Dim i As Long
    Dim Colonne As Integer
    Dim S As Variant

    With Sheets("Stock").ListObjects(1)
        On Error Resume Next
        i = Application.Match(code, .ListColumns("ISBN").DataBodyRange.Value, 0)
        On Error GoTo 0
        If i = 0 Then
            MsgBox "Valeur inexistante"
        Else
            .ListColumns("Quantité ").DataBodyRange.Rows(i) = .ListColumns("Quantité ").DataBodyRange.Rows(i) - 1
        End If
    End With

NB: La plage "DatabodyRange" correspond aux données de l'objet tableau sans les entêtes de colonne

La propriété "ListColumns" correspond aux colonnes de l'objet tableau.

Bonsoir @Thev

merci d'avoir pris le temps de vous plonger dans mon code qui je le sais, n'est pas très lisible. Le conseil n°3 est donc retenu. J'ai essayé le code que vous m'avez transmis, en remplaçant cependant la variable i par j, étant donné que i était déjà utilisée. J'ai fait quelques tests et ça marche parfaitement.

Je prendrai le temps pour essayer de comprendre les fonctions utilisées.

Encore un grand merci à vous !!!

Rechercher des sujets similaires à "probleme utilisation application match logiciel librairie"