Gestion de stok très simplifiée

sarata

XLDnaute Junior
Bonjour le forum !

J'ai un fichier contenant plusieurs références de pièces sur une colonne et leurs quantités sur une autre colonne et j'aimerai pouvoir gérer les entrées sorties de ces références de manière très simple:
2 "gros" boutons ENTREE et SORTIE

Exemple pour l'action du bouton entrée :​
Une fenêtre apparait avec 3 zones et un bouton valider:
- Entrée de stock à la date de : ../../....[ la date du jour est marquée sans possibilité de saisie]
- Entrer la référence à entrer en stock : [l'idéal serait une zone avec une saisie semi auto des données de la première colonne]
- Quantité à entrer : jusqu'à 6 digits
Après validation , une fenêtre "ok only" apparait pour confirmer l'opération : : la réf XXXX a été incrémentée de XXX, stock disponible : XXXX

Quelqu'un peut me proposer son aide?

Merci par avance!!
 

Pièces jointes

  • Gestion PCD V1.xls
    82.5 KB · Affichages: 357
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : Gestion de stok très simplifiée

Oui, je n'avais pas vu. Supprimez toutes les lignes inutiles de la feuille STOCK. Coloriez en bleu claire ce qui est en dehors de la liste comme j'ai fait pour la feuille commandes.
 

sarata

XLDnaute Junior
Re : Gestion de stok très simplifiée

et pour rajouter des codes dans la base de données?

Sinon est il possible de m'aider pour le filtre par code article des mvts de stock
merci par avance
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : Gestion de stok très simplifiée

Copiez la dernière ligne, insérez la devant elle même et modifiez la dernière.
Remarque: ça pourrait s'automatiser quand on sélectionne une cellule de la ligne juste en dessous du talbleau...
 

sarata

XLDnaute Junior
Re : Gestion de stok très simplifiée

Il reste deux points si tu veux bien m'aider

--> filtrer l'historique
--> Automatiser l'agrandissement de la base de données

Ce travail va faciliter le travail de pas mal de personnes vous pouvez en être fier en leur nom Grand merci
 

Dranreb

XLDnaute Barbatruc
Re : Gestion de stok très simplifiée

Trop bon moi...
FLstPcD (STOCK):
VB:
Option Explicit
'

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Ls As Long, L As Long
With Me.[CodesPièces]: Ls = .Row + .Rows.Count: End With: L = Ls - 1
If Target.Row >= Ls Then
   Application.EnableEvents = False
   Me.Rows(L).Copy: Me.Rows(L).Insert
   With Intersect(Me.Rows(Ls), Me.[CodesPièces:QtéDrnMvt]): .ClearContents: .Select: End With
   Application.EnableEvents = True
ElseIf Target.Row < L Then
   Application.EnableEvents = False
   If WorksheetFunction.CountA(Intersect(Me.Rows(L), Me.[CodesPièces:QtéDrnMvt])) = 0 Then Me.Rows(L).Delete
   Application.EnableEvents = True
   End If
End Sub
Pour le filtre de l'historique je ne vois pas ce qu'il faut de plus qu'un simple filtre automatique.

Bon week-end.
 
Dernière édition:

sarata

XLDnaute Junior
Re : Gestion de stok très simplifiée

Après utilisation --> ça répond au besoin presque de manière parfaite
Le seul bémol est pour l'entrée en stock
il arrive qu'il y ait environ 100 pièces à entrer et là le userform n'est pas très adapté
Est il possible d'avoir en plus des boutons entrées sorties un petit bouton import données qui met à jour le stock en traitant les données d'un fichier de base (colonne A réf/colonne B qté)

--> on copie les deux colonnes du fichier de base
--> On clique sur le bouton d'import
--> Une fenêtre nous propose de coller les données
-->Réf description et qte s'affichent
--> On valide le mouvement
--> le stock est mis à jour

Merci d'avance pour votre aide
 

Dranreb

XLDnaute Barbatruc
Re : Gestion de stok très simplifiée

Bonjour
Pour l'importaion vous pourriez avoir besoin de ceci qui gère l'ouverture s'il y a lieu du fichier à importer, pourvu qu'il possède une ligne de titres servant de vérification.
Les lignes à garnir pourraient être définies dans la 1ère feuille, ainsi d'ailleurs que les plage de contrôle d'importation.
À+
 

Pièces jointes

  • Importation.zip
    160.3 KB · Affichages: 56
  • Importation.zip
    160.3 KB · Affichages: 62
  • Importation.zip
    160.3 KB · Affichages: 58

Dranreb

XLDnaute Barbatruc
Re : Gestion de stok très simplifiée

Le code n'a pas à être retouché à priori: il s'appuie sur des plages nommées à créer:
ChNomF: une cellule, Source: une colonne, Cible: une colonne, Lignes: une ligne et Colonnes: un groupe de lignes.
Si on veut utiliser une seule feuille de contrôle, prendre celle munie du code, sinon on peut plutôt utiliser le module Importation séparé des différentes feuilles de contrôle.
4 informations doivent être spécifiées:
1 - Le numéro de la ligne de titres du fichier source (intersection Source Lignes)
2 - La liste des titres présents à cette ligne depuis la colonne 1 (intersection Colonnes Source)
3 - Un nom de plage couvrant toutes les lignes du tableau déjà garni (intersection Cible Lignes)
4 - Les noms des colonnes à garnir dans le fichier (intersection Colonnes Cible)
Bonne soirée
 

Dranreb

XLDnaute Barbatruc
Re : Gestion de stok très simplifiée

Bonjour.
Mais j'y pense tout à coup:
la feuille "A commander", après correction des lignes qui ne peuvent être approvisionnées, ne ferait elle pas l'affaire comme support des entrées en masse ?
Dans ce cas, s'il est néanmoins nécessaire de prévoir une importation, il pourrait suffire de spécifier:
"'A commander'!CodesPièces:Qté" comme liste de lignes à garnir,
"'A commander'!CodesPièces" en regard du titre qui surmonte les codes pièces
"'A commander'!Qté" en regard du titre qui surmonte les quantités fournies
La Mise à jour du stock c'est plus rien à écrire ensuite: ça marche comme la BtGo_Click de UfMvt sauf que ça va aller pêcher les information dans les lignes de cette feuille au lieu de les prendre dans la LbxMvt. Pour obtenir le n°de ligne dans le Stock l'instruction suivante peut être utilisée:
VB:
Lc = WorksheetFunction.Match(CodePièce, FLstPcD.[CodesPièces], 0)
Enfin je vous écrirais toute la procédure si vous n'ty arrivez pas, dès que vous m'aurez confirmé que cette feuille vous convient comme support des approvisionnements en masse.
 

Dranreb

XLDnaute Barbatruc
Re : Gestion de stok très simplifiée

J'ai mal choisi mes noms de plages dans la feuille "A commander", désolé.
Renommez "CodesPièces" en "CodeACd", "DésignPièces" en "DésignACd" et "Qté" en "QTéACd".
Si de plus ces nouveaux noms seront définis au niveau du classeur et non plus de la feuille, il ne sera plus nécessaire de préciser le nom de cette feuille en préfixe dans les informations de contrôle d'importation.
Mais la modif est motivée par autre chose: CodesPièces niveau classeur n'est plus reconnu si également défini niveau feuille, d'où impossibilité de ramener la désignation par formule !
Le module de cette feuille devient :
VB:
Option Explicit
'

Private Sub BtConstLstCmd_Click()
Dim Ts() As Variant, Le As Long, Ls As Long, LAct As Long
ReDim Ts(1 To FLstPcD.[CodesPièces].Rows.Count, 1 To 3) As Variant
Ls = 0
For Le = 1 To FLstPcD.[CodesPièces].Rows.Count
   If FLstPcD.[StockDispo].Rows(Le).Value < FLstPcD.[StockMini].Rows(Le).Value Then
      Ls = Ls + 1
      Ts(Ls, 1) = FLstPcD.[CodesPièces].Rows(Le)
      Ts(Ls, 2) = FLstPcD.[DésignPièces].Rows(Le)
      Ts(Ls, 3) = FLstPcD.[QtéCmd].Rows(Le)
      End If
   Next Le
If Ls < 2 Then Ls = 2
LAct = Me.[CodeACd].Rows.Count
If LAct < Ls Then
   Me.[CodeACd].Rows(LAct).EntireRow.Resize(Ls - LAct).Insert
ElseIf LAct > Ls Then
   Me.[CodeACd].Rows(2).EntireRow.Resize(LAct - Ls).Delete
   End If
Me.[CodeACd:QtéACd].Value = Ts
End Sub
'

Private Sub BtImporter_Click()
ImporterFCtrl Me
Me.[DésignACd].FormulaR1C1 = "=INDEX(DésignPièces,MATCH(CodeACd,CodesPièces,0))"
End Sub
'

Private Sub BtMàjStock_Click()
Dim SgnMvt As Long, Heure As Date, Stock As Long, CodePièce As String, Qté As Long, Lc As Long, Lm As Long, La As Long
SgnMvt = 1
Heure = Now
For Lm = 1 To Me.[CodeACd].Rows.Count
   CodePièce = Me.[CodeACd].Rows(Lm).Value
   On Error Resume Next
   Lc = WorksheetFunction.Match(CodePièce, FLstPcD.[CodesPièces], 0)
   If Err Then
      Rem. Disposition en cas de
      MsgBox "Pièce """ & CodePièce & """ non répertoriée en stock.", vbExclamation, "Approvisionnements"
      GoTo Suivant: End If
   On Error GoTo 0
   Stock = FLstPcD.[StockDispo].Rows(Lc).Value
   Qté = Me.[QtéACd].Rows(Lm).Value * SgnMvt
   Stock = Stock + Qté
   FLstPcD.[StockDispo].Rows(Lc).Value = Stock
   With FArch.[Tablo]: La = .Rows.Count: .Rows(La).Copy: .Rows(La).Insert
      La = .Rows(La + 1).Row: End With
   FArch.[Heure].Rows(La).Value = Heure
   FArch.[Code].Rows(La).Value = CodePièce
   FArch.[Qté].Rows(La).Value = Qté
   FArch.[Stock].Rows(La).Value = Stock
   FLstPcD.[DatDrnMvt].Rows(Lc).Value = Heure
   FLstPcD.[QtéDrnMvt].Rows(Lc).Value = Qté
Suivant: Next Lm
End Sub
À+
 

sarata

XLDnaute Junior
Re : Gestion de stok très simplifiée

J'ai rajouté à la feuille à commander 2 boutons du nom des macros rajoutées et j'ai renommé les plages ça ne marche pas pour l'instant
ImporterFCtrl est le nom que je dois donner à la feuille de contrôle?la mettre à quel niveau?
Du coup je ne sais pas précisément quelle est la procédure d'import
Je peux avoir quelques précisions s'il te plait
Merci par avance
 
Dernière édition:

Discussions similaires

Réponses
2
Affichages
948

Membres actuellement en ligne

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 813
dernier inscrit
kaiyi