Ajout et Suppression de quantité (macro)

Résolu
Bonjour,

Encore moi pour un souci macro cette fois.

J'ai une base de donnée, ou l'état de mon stock est inscrit.

J'aimerais que sur la feuille de travail il y ait deux boutons
=> Ajouter 1
=> Enlever 1

Quand je clic le +1 excel ajoute automatiquement 1 unité dans la colonne quantité pour la référence choisi dans la feuille de travail.
Idem pour le -1

https://www.cjoint.com/?3Cep2wiUkq6

Par avance merci

3 réponses

  1. Bonjour

    Un petit exemple
    https://www.cjoint.com/?3CeqylCa2vY

    Cdlmnt
    1
    1. Parfait,

      C'est tout bon pour moi :)

      Un gros merci!
      0
    2. RQ. En C11 je verrai plutôt
      =RECHERCHEV(C5;Base!B2:D38;3;0)
      0
    3. Exacte c'est plus simple, je l'avais fait rapidement celle la pour voir le resultat. Après modification c'est kif-kif mais beaucoup plus propre :)

      Comment as-tu fait pour avoir ce résultat?
      0
    4. @Alew14Comment as-tu fait pour avoir ce résultat?
      Quel résultat
      Si c'est pour la qua,tité en stock, avec une autre référence, la valeur du stock de la base n'était pas rapportée en feuille de travail
      0
    5. Je parlais pour avoir le +1 -1 et que cela incrémente tout seul dans la base
      0
  2. Ah!
    0. Nommer les cellules et les plages comme indiqué dans le fichier

    1. Mettre les deux boutons dans la feuille
    Ces boutons (contrôles ActiveX) doivent être pris dans la boite à outils contrôles (Affichage/barres d'outils/Boite à outils contrôles)
    L'équerre bleue permet de passer du mode création au mode exécution
    Clic sur l'équerre bleue, et mettre les deux boutons dans la feuille
    Clic-droit sur le bouton pour modifier les propriétés
    Name = btPlus1
    Caption +1
    Font ....
    2. Implémenter le code attaché aux boutons
    Clic-clic sur le bouton te fait passer dans l'éditeur vba
    Tu complètes le code, les deux boutons font appel à la même procédure MAJ(k) où k prendra la valeur envoyée par les procedures Click des boutons

    Private Sub btMoins1_Click()
    Call MAJ(-1)
    End Sub

    Private Sub btPlus1_Click()
    Call MAJ(1)
    End Sub


    3. Ecriture de la procédure MAJ(k)
    Insertion/module pour passer dans un module "général" (c'est plus propore), copier le code de la procédure

    Const FT = "Feuille de travail"
    Const Ref = "Ref"

    Const FB = "Base"
    Const plageRef = "Reference"
    Const plageStock = "Stock"

    Public Sub MAJ(k As Long)
    Dim plage As Range, R As String, objref As Object, li As Long, s As Long
    R = Sheets(FT).Range(Ref).Value
    Set plage = Sheets(FB).Range(plageRef)
    Set objref = plage.Find(R, , , xlWhole)
    If objref Is Nothing Then Exit Sub
    li = objref.Row
    s = Sheets(FB).Range(plageStock).Cells(li, 1).Value
    Sheets(FB).Range(plageStock).Cells(li, 1).Value = s + k
    End Sub

    4. Retour dans la feuille de calcul
    Clic sur l'équerre bleue pour passer en mode exécution

    5. C'est fini
    0
    1. Merci, un poil trop pointu pour moi mais c'est sympa de savoir comment cela est fait
      0
  3. Mais non, mais non !
    Tu fais la manip deux ou trois fois, et après ça se fera tout seul

    Bon courage :-)
    0