Ajout et Suppression de quantité (macro)

Résolu
Alew14 Messages postés 7 Statut Membre -  
ccm81 Messages postés 11033 Statut Membre -
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. ccm81 Messages postés 11033 Statut Membre 2 434
     
    Bonjour

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

    Cdlmnt
    1
    1. Alew14 Messages postés 7 Statut Membre
       
      Parfait,

      C'est tout bon pour moi :)

      Un gros merci!
      0
    2. ccm81 Messages postés 11033 Statut Membre 2 434
       
      RQ. En C11 je verrai plutôt
      =RECHERCHEV(C5;Base!B2:D38;3;0)
      0
    3. Alew14 Messages postés 7 Statut Membre
       
      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
      1. ccm81 Messages postés 11033 Statut Membre 2 434 > Alew14 Messages postés 7 Statut Membre
         
        Comment 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
    4. Alew14 Messages postés 7 Statut Membre
       
      Je parlais pour avoir le +1 -1 et que cela incrémente tout seul dans la base
      0
  2. ccm81 Messages postés 11033 Statut Membre 2 434
     
    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. Alew14 Messages postés 7 Statut Membre
       
      Merci, un poil trop pointu pour moi mais c'est sympa de savoir comment cela est fait
      0
  3. ccm81 Messages postés 11033 Statut Membre 2 434
     
    Mais non, mais non !
    Tu fais la manip deux ou trois fois, et après ça se fera tout seul

    Bon courage :-)
    0