Sortir un article du stock

Fermé
simkmil Messages postés 434 Date d'inscription mardi 19 février 2008 Statut Membre Dernière intervention 13 mars 2024 - 18 août 2021 à 16:36
yg_be Messages postés 22710 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 avril 2024 - 19 août 2021 à 22:42
Bonjour,
J'ai composé une facture pour un ami (pneus) et j'ai donc voulu automatiser un maximum.
tout fonctionne correctement puisque j'ai une liste des clients ainsi qu'une feuille réservée à l'entrée en stock des pneus. Lorsque j'appelle l'entrée n° xx j'ai automatiquement les coordonnées, prix, dimension sur ma facture. Ma feuille stock comprends encore d'autres colonnes avec e.a. Prix d'achat, remise etc.
Je voudrais que en indiquant la quantité de pneus que je prends dans le stock, cette même quantité soit inscrite dans la colonne (ici "O") afin de pouvoir sortir cela du stock.
Cerise sur le gâteau
, si je pouvais également effacer ma ligne de stock lorsque celui ci est à zéro ... ce serait formidable.

Je vous remercie de votre aide et je joins copie de mon fichier.

https://www.cjoint.com/c/KHsoKzs8n3I

Configuration: Windows / Chrome 92.0.4515.159

3 réponses

yg_be Messages postés 22710 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 avril 2024 1 474
18 août 2021 à 16:48
bonjour,
quel est le soucis pour réaliser cela?
0
simkmil Messages postés 434 Date d'inscription mardi 19 février 2008 Statut Membre Dernière intervention 13 mars 2024 34
18 août 2021 à 16:55
Bonjour, mon soucis est que ne sais pas comment faire pour écrire la même quantité que sur la facture dans la colonne O de ma feuille "Stock" , sur bien entendu la même ligne que la ligne du produit en question.
sur le fichier que je vous ai envoyé, j'ai 15 lignes, elles continueront au fur et à mesure que j'entrerai du stock, mais si par exemple je facture le n° 14 avec 2 pneus, je ne sais pas alleer inscrire (en dehors de ma facture ) 2 sur la même ligne que le n° 14 et ans a colonne O
Merci de votre aide
0
yg_be Messages postés 22710 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 avril 2024 1 474 > simkmil Messages postés 434 Date d'inscription mardi 19 février 2008 Statut Membre Dernière intervention 13 mars 2024
18 août 2021 à 17:06
où est écrit ce n°14? quelque part dans la facture? elle semble vide.
cela devrait s'intégrer dans quel code?
0
simkmil Messages postés 434 Date d'inscription mardi 19 février 2008 Statut Membre Dernière intervention 13 mars 2024 34 > yg_be Messages postés 22710 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 avril 2024
18 août 2021 à 17:34
Non, le n° 14 est un exemple bien entendu et il se trouve en colonne A de la feuille Stock
je pense que ça devrait faire partie d'un nouveau module ou alors "archiver_factures" ? car je veux prendre la quantité se trouvant en B16-17-18-ou 19 de la facture que j'inscrit après avoir noté en A le numéro de l'article selon la feuille Stock et je veux aller mettre cette quantité en O sur la feuille Stock, mais sur la ligne spécifiée de mon article.
Ici dans l'exemple que je vous ai donné, je prends deux pneus n° 14 et sur la facture il va s'inscrire : Michelin ... 255/45/17 au prix de 175 .... Ensuite je met "2" dans la colonne quantité et j'aimerais que s'inscrive également 2 sur la ligne de l'article 14 de ma feuille Stock en colonne O
cela me permettrait de gérer le stock puisque sur cette feuille stock, j'ai une colonne entrées et lorsque j'aurais la quantité sortie, je pourrais avoir le stock de ce pneu ce jour.
Comme je le disais auparavant, le summum serait que lorsque mon stock du jour est à zéro, la ligne s'efface. Mais ce n'est pas nécessaire.
Un grand merci pour votre aide, j'espère que nous allons y arriver.
Bonne soirée.
0
yg_be Messages postés 22710 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 avril 2024 1 474 > simkmil Messages postés 434 Date d'inscription mardi 19 février 2008 Statut Membre Dernière intervention 13 mars 2024
18 août 2021 à 17:56
donc ce serait utile de créer une sub qui reçoit en paramètre le N° d'article et la quantité d'article, et qui ajoute la quantité en colonne O de stock?
0
yg_be Messages postés 22710 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 avril 2024 1 474 > yg_be Messages postés 22710 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 avril 2024
18 août 2021 à 18:07
un exemple:
Sub updstock(article As Integer, quantite As Integer)
Dim cl As Range
Set cl = Sheets("Stock").[a2]
Do While cl <> article And cl <> ""
    Set cl = cl.Offset(1)
Loop
If cl = article Then
    cl.Offset(, 14) = cl.Offset(, 14) + quantite
Else
    MsgBox ("article manquant")
End If
End Sub

ou bien ceci, qui supprime la ligne de stock quand on a tout consommé:
Sub updstock(article As Integer, quantite As Integer)
Dim cl As Range
Set cl = Sheets("Stock").[a2]
Do While cl <> article And cl <> ""
    Set cl = cl.Offset(1)
Loop
If cl = article Then
    cl.Offset(, 14) = cl.Offset(, 14) + quantite
    If cl.Offset(, 5) = cl.Offset(, 14) Then
        cl.EntireRow.Delete
    End If
Else
    MsgBox ("article manquant")
End If
End Sub
0
simkmil Messages postés 434 Date d'inscription mardi 19 février 2008 Statut Membre Dernière intervention 13 mars 2024 34
18 août 2021 à 20:37
Non, ça ne fonctionne pas ! pas de ta faute bien entendu, mais c'est moi qui ne comprends pas !!
j'ai ajouté Call updstock(14, 2) avant le End sub de mon code : rien ne se passe
j'ai oté mon end sub : ça na va pas
j'ai mis Call updstock(14, 2) avant sub updstock... : erreur
Je suis perdu mais je reviendrai demain la dessus
merci encore de ton aide.
0
yg_be Messages postés 22710 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 avril 2024 1 474
18 août 2021 à 20:47
ce n'est pas le call qu'il faut placer en fin de module, c'est la déclaration de la sub, telle que proposée en #6.

n'hésite pas à montrer ce que tu as essayé: je peux difficilement le deviner.

un exemple complet à tester dans un nouveau module:
option explicit
private Sub updstock(article As Integer, quantite As Integer)
Dim cl As Range
Set cl = Sheets("Stock").[a2]
Do While cl <> article And cl <> ""
    Set cl = cl.Offset(1)
Loop
If cl = article Then
    cl.Offset(, 14) = cl.Offset(, 14) + quantite
    If cl.Offset(, 5) = cl.Offset(, 14) Then
        cl.EntireRow.Delete
    End If
Else
    MsgBox ("article manquant")
End If
End Sub
Private Sub tst()
Call updstock(7, 2)
End Sub
0
SimKmil > yg_be Messages postés 22710 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 avril 2024
19 août 2021 à 10:45
Bonjour,
décidément je pense être nul !
je viens d'essayer : j'ai placé ton code dans un nouveau module (ici module 2) et je veux le faire démarrer ... rien , il ne m'a donné aucun nom de macro.
Dois je placer ce module à l'intérieur de mon premier module ?
dois je créer un sub updstock() ?
Sinon, maintenant je comprends tout ton code : une boucle pour vérifier où se trouve l'article, si on ne trouve pas affichage de "article manquant" , sinon appeler updstock
mais je ne vois toujours pas où je peux intégrer ce code ?
A toute fins utiles je te joins à nouveau mon fichier, où tu peux vérifier mon code.
Merci encore
https://www.cjoint.com/c/KHtiTaJ14cI
0
yg_be Messages postés 22710 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 avril 2024 1 474 > SimKmil
Modifié le 19 août 2021 à 12:29
si tu veux démarrer via une macro, supprime le private devant
sub tst
.
sinon, tu positionnes le curseur dans la
sub tst
, et tu fais f5.
0
yg_be Messages postés 22710 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 avril 2024 1 474 > SimKmil
19 août 2021 à 12:36
j'ai regardé ton dernier fichier.
l'instruction
Call updstock(14, 2)
doit se trouver à l'intérieur d'une sub, par exemple à la place de l'instruction
Sheets("Stock").Range("O" & ligne).Value = Sheets("Facture").Range("B16").Value
.
0
simkmil Messages postés 434 Date d'inscription mardi 19 février 2008 Statut Membre Dernière intervention 13 mars 2024 34 > yg_be Messages postés 22710 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 avril 2024
19 août 2021 à 15:40
merci, j'essaie cela de suite
0
yg_be Messages postés 22710 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 avril 2024 1 474
19 août 2021 à 22:42
alors
Call updstock(Sheets("Facture").Range("A16"),Sheets("Facture").Range("B16"))
0