Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 La règle du coup de poing Remise sur quantité du magasin

Mody200

XLDnaute Occasionnel
Bonjour
Il n'est pas possible de déduire la quantité produite pour l'entrepôt d'où elle est sortie
Quel est le problème avec ce code ?
 

Pièces jointes

  • copy-of-copy-of-quantite-transferee-4 (1).xlsm
    171.7 KB · Affichages: 9

crocrocro

XLDnaute Occasionnel
Bonjour Mody,
pas évident d'arriver par l'application sur la macro sans plus d'informations.
Quelques remarques sur le code de la macro dont votre image est extraite :

VB:
Private Sub MajInventaire()
Dim v As Integer

With Worksheets("Inventaire")

    lgD = .Cells(Rows.Count, 1).End(xlUp).Row + 1

    For v = 0 To ListBox1.ListCount - 1
        With .Cells(lgD, 3)
            If flgAdd = 0 Then
                .Offset(, -2) = ListBox1.List(v, 1) 'Code article
                .Offset(, -1) = ListBox1.List(v, 4) 'Catégorie
                .Offset(, 2) = ListBox1.List(v, 5) 'Seuil d'alerte
                .Offset(, 3) = ListBox1.List(v, 6) 'Descriptif
                .Offset(, 4) = ListBox1.List(v, 7) 'Référence
                .Offset(, 5) = ListBox1.List(v, 8) 'Unité de mesure
                .Offset(, 6) = "Transfert"         'Observations
                .Offset(, 9) = ComboBox2           'Magasin
                QD = Val(.Value) + QT: .Value = QD  'Stock actuel
             Else
                .Offset(, 7) = .Offset(, 7) + ListBox1.List(v, 9)
             End If
             lgT = lgT + 1
        End With
        .Protect
    Next v
End With
End Sub

- Le .protect doit être placé après le Next v sinon , plus de mise à jour possible après le 1er tour de boucle

- lgD correspond à la ligne après la dernière ligne du tableau.
C'est bien là que vous voulez ajouter vos lignes ?

- à chaque tour de boucle vous incrémentez lgT pour renseigner la ligne suivante, c'est lgD.

- QD = Val(.Value) + QT: .Value = QD 'Stock actuel
.value correspond à Cells(lgD, 3) qui n'est jamais alimentée dans les lignes qui précèdent dans la boucle, donc aura toujours pour valeur QD = 0 + QT = QT et donc .Value = OD aura pour valeur QT

Et, d'après le code d'alimentation de la ListBox ici
VB:
Private Sub ListBox1_afterupdate()
Me.TextBox1.Value = Me.ListBox1.Column(0)
Me.CB_Pièce.Value = Me.ListBox1.Column(1)
Me.catetr = Me.ListBox1.Column(2)
Me.Desitr = Me.ListBox1.Column(3)
Me.reftr = Me.ListBox1.Column(4)
Me.unitr = Me.ListBox1.Column(5)
Me.seuil = Me.ListBox1.Column(6)
Me.TextBox81 = Me.ListBox1.Column(7)
Me.TextBox85.Value = Me.ListBox1.Column(9)
Me.Quantitetr.Value = Me.ListBox1.Column(8)
'Me.TextBox81.Value = Me.ListBox1.Column(10)
End Sub

il semble qu'il y ait des incohérences avec le code plus haut.
Et ce serait, selon moi, ListBox1.(v,8) qui devrait alimenté .value comme ceci :
.Value = ListBox1.(v,8) + QT
 
Dernière édition:

Mody200

XLDnaute Occasionnel
Merci pour les précisions crocrocro
je veux une macro
Quand je déduis la quantité de Feuil8(Inventaire)
Si nous supposons que le code article est dans la cellule A4
SM004.0032
Le magasin dans la cellule L4 est OA01
La quantité est dans la cellule D4
Elle a 20 ans
Lors de l'ajout du montant dépensé dans la list box, qui est 5, lors de son transfert vers Feuil8 (Inventaire)
Je veux que la quantité dans la cellule D4 soit
Elle a 15 ans
Ainsi que pour le reste des articles avec chaque boutique qui y est connectée
Sachant que les articles sont similaires, mais que la quantité est la même pour chaque magasin, comme le montre Feuil8 (Inventaire)
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…