Gestion de stock simple (probléme de macro)

bonjour a tous,

j'ai un petit souci dans une macro sur une feuille.

La macro se trouve sur la feuille intitulé " janvier "

une autre feuille intitulé " produit "

j'y ai placé un code afin de saisir est d'enlever automatiquement du stock un produit lors de la saisi de celui-ci

le seul problème, si je saisi 2 fois le même produit sur la même feuille " janvier " le décompte ne se fait qu'une fois

voici le code :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer
Dim mavar As Integer
Dim derlig As Integer
If Target.Column <> 13 Then Exit Sub
derlig = Sheets("Produit").Range("D65536").End(xlUp).Row
For i = 1 To derlig
If Sheets("Produit").Cells(i, 4).Value = Target.Value Then
mavar = Sheets("Produit").Cells(i, 5).Value
mavar = mavar - 1
Sheets("Produit").Cells(i, 6).Value = mavar
Exit Sub
End If
Next
MsgBox ("Je ne trouve pas ce produit")
End Sub

Quelqu'un aurait une idée du problème

précision : je rajoute manuellement dans le stock quand celui ci s’affaiblit

Bonsoir Francky,

Avec :

mavar = Sheets("Produit").Cells(i, 5).Value

mavar = mavar - 1

Sheets("Produit").Cells(i, 6).Value = mavar

tu soustrais 1 à la valeur de la cellule en colonne E puis tu mets cette valeur en colonne F.

Si tu ressaisis la même référence de produit tu refais la même opération.

La valeur de la colonne E n'a pas changée, tu obtiens donc le même résultat.

Amicalement

Slt haonv

je te remercie de te pencher sur la question.

Je n'arrive pas a créer la macro pour dire que c'est une nouvelle opération et retirer a nouveau 1 a la colonne F par rapport au même produit .

S quelqu’un a une petite idée , elle sera la bienvenu

je joins un fichier ressemblant :

86test-stock-2.xlsm (23.34 Ko)

Merci a tous

Bonjour

Une vision personnelle

Slt banzai64

Super c'est ce que j'attendais , je vérifie a nouveau puis je te dis exactement ce qu'il en est

Encore merci

re- salut banzai64

Ca fonctionne trés bien,

Y a t'il possibilité d'intégrer à la feuille " produit " un bouton" par exemple " incrémentation" , qui selectionne le produit et ajoute automatiquement le nombre désiré sur les 2 colonnes ?

sinon je me débrouille autrement

Encore merci

Bonjour

A vérifier si c'est ce que tu veux

merci Banzai64, c'est exactement ça

Je te remercie beaucoup

J'ai une dernière chose à te demander, aurais tu une idée (a partir des mêmes feuilles de calcul et dans le même classeur ), pour répertorier mois par mois , le nombre" produit1 ; produit 2; etc etc. "

Du style :

produit1 x

produit2 x

produit3 x

x étant le nombre de fois sélectionné dans le mois

Je pensais a un bouton comme celui de l' incrémentation qui une fois actionné (en fin de mois ) ferait une nouvelle feuille de récapitulation du mois dans le classeur, car j'aimerai faire un bilan avec graphique par la suite.

Si tu as une autre idée , elle sera la bienvenu.

Encore merci pour tout

Bonsoir

Juste une idée à voir

Je n'aime pas trop les formules donc sur ce sujet je n'irai pas plus loin

Si quelqu'un veut bien reprendre le problème

Si l'idée plait, tant mieux.

bonsoir, Banzai64

Je vais copier la feuille janvier pour avoir fevrier, mars etc etc

En faisant dans le tableau que tu viens de poster , la formule ne va pas distinguer les différents mois, enfin je suppose

merci quand même , je comprends qu'a un moment on en a assez puis tu as passé assez de temps sur mon sujet, place au autre

En tout cas merci beaucoup

C'est quoi ton job ?

Si la france cherche son incroyable talent, bin t'en a un

encore merci

Bonsoir

Une erreur dans la formule

manque un $ pour figer la colonne

=SI(ESTERREUR(NB.SI(INDIRECT(C$3&"!M12:M15");$B4));"";NB.SI(INDIRECT(C$3&"!M12:M15");$B4))

Corrigé dans ce fichier

le nom des mois doit être au format correct

Attention aux accents

Février

Août

Décembre

francky62000 a écrit :

C'est quoi ton job ?

C'est de plus en avoir

Re bonsoir,

Je suis désolé pour toi,

j'essaierai ta formule demain , cela dit j'ai utilisé la fonction SOMMEPROD qui a l'air de bien fonctionner égalemnent

du genre :

=SOMMEPROD((janvier!M12:M1000=B6)*1) Pour la première case du tableau

En gros mais tu dois connaitre ( alors c'est pour les autres )

Dans la colonne du mois de janvier M12 à M1000 compter le nombre de fois la valeur de référence B6

Bon je vais me coucher

Salut Banzai64

Un petit ou même 2 petits souci,

1 : Le bouton incrémentation affecte tous les produits sauf celui se trouvant en tête , c'est a dire le premier

2 : Aprés avoir fais toutes mes feuilles de mois " janvier février etc etc " , le décompte ne se fait plus , pourtant sur chaque feuille il y a bien la macro. En faite pour le même produit entre les 2 mois ca ne se soustrait pas en stock final , j'ai l'impression que l'un des mois en rajoute .

J'ai tout revérifié, mais ou est l'erreur ?

merci de m'éclairer

Bonjour

A vérifier

slt et merci

Il n'y pas d'activation du produit pour la feuille janvier , le décompte se fait seulement si je sélectionne le même produit en février

@@@+++

Dis moi ou sont les modifs, que je corrige sur mon vrai classeur

merci

Bonjour

Le code de la macro est dans le module ThisWorkbook (Indiqué dans le fichier)

Il faut que le nom de tes pages soient identiques aux noms recherchés par la macro

Case "Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"

Minuscules/Majuscules/Accentuations respectés

Pour activer la page "janvier" modifies le nom de l'onglet "Janvier" (avec un J majuscule)

re

J'ai un bug a cause de cette ligne je pense :

LgFin = Ws.Range("B" & Rows.Count).End(xlUp).Row ' La dernière ligne dans la page Récap

Dans la colonne B en B8 exactement , j'ai un titre dans un tableau reprenant la liste, il me met donc a chaque saisi de produit :

Produit inexistant : Nom des produits en vente

Nom des produits en vente = titre dans la cellule

Je te rejoins le fichier tu verras mieu:

Bonjour

A voir si les corrections conviennent

Ca va merci

Par contre les calculs sont assez long, c'est possible sans reprendre la feuille récap car elle s'actualise déja non par :

=SI(ESTERREUR(NB.SI(INDIRECT(C$3&"!M12:M15");$B4));"";NB.SI(INDIRECT(C$3&"!M12:M15");$B4))

De ce fait elle est actualisé 2 fois !! Enfin je crois

Bonsoir

Je ne connais pas d'autre moyen de maintenir ton stock à jour

Les formules ne sont pas ma tasse de thé et je crois t'avoir signalé que je n'irai pas plus loin à ce sujet

francky62000 a écrit :

De ce fait elle est actualisé 2 fois !! Enfin je crois

C'est vrai que la formule est calculée 2 fois mais c'est une méthode pour éviter le #VALEUR (ou autre message d'erreur)

Mais le tableau n'est pas réactualisé 2 fois

Dès que tu modifies le nom d'un produit dans une page je recalcule le stock

On pourrait faire plus simple avec des formules entre la page "Produit" et la page "Récap"

Exit la macro dans le module ThisWorkbook

Voir le fichier

Rechercher des sujets similaires à "gestion stock simple probleme macro"