Un peu d
bonjour à tous,
qui peut m'aider à rendre ma feuille 3 opérationnelle ,je m'explique :
dans le cadre d'une association caritative nous saisissons:
- les stocks (feuille2)de produits distribués tout au long de la saison ,
- les prix unitaires ...feuille 3. Le produit prix unitaire ( premier prix trouvé à gauche de la quantité en stock ) par quantité en stock s'obtient en double cliquant sur la dernière colonne ...
Qui peut m'aider à débugger svp
la macro utilisée est la suivante :
Dim DerLn, Col, DerCol
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
DerLn = Range("A" & Rows.Count).End(xlUp).Row
DerCol = Cells(3, 1).End(xlToRight).Column
If Not Intersect(Target, Range(Cells(5, DerCol), Cells(DerLn, DerCol))) Is Nothing Then
If Target.Offset(0, -1).Value <> "" Then
Col = Target.Offset(0, -1).End(xlToLeft).Column
If Col > 1 Then
Target = Target.Offset(0, -1).Value * Cells(Target.Row, Col).Value
Target.Offset(0, 1).Select
Else
MsgBox " Aucun prix ne figure sur cette ligne", 16
End
End If
End If
End If
End Sub
j'arrive pas à voir ou ça plante...
par avance merci pour l'aide apportée
jpt
bonsoir Eric,
Un grand merci pour votre aide.
J'ai modifié selon votre conseil, cela fonctionne sur une grande partie des items, pour un petit nombre ça bug, et je suis pas assez compétent pour trouver ce qui ne va pas...
j'ai joint le tableau modifié et marqué par une croix les items à pb...
Merci pour l'aide apportée à résoudre ce problème...
cordialement
jpt
Bonjour,
avec le blocage du site pour maj j'ai un peu oublié les détails...
Pour calculer col :
If Target.Offset(0, -2).Value <> "" Then
Col = Target.Offset(0, -2).Column
Else
Col = Target.Offset(0, -1).End(xlToLeft).Column
End IfCa te corrige les qq lignes qui ont le dernier prix en dernière colonne.
Toute les autres erreurs sont dues à des " " dans les cellules. Il y en a presque 300 !!! A proscrire.
J'ai nettoyé les " " et je te propose une autre solution sans macro.
Insérer un colonne vide Y. Les insertions de colonne se feront devant.
En Z une formule qui te ramène le dernier prix.
Formule matricielle à valider avec Shift+Ctrl+Entrée
En V8 je t'ai laissé un " ", voit ce que ça donne comme erreur.
eric
super , pour les solutions.
Ta solution convient parfaitement, l'important est d'obtenir facilement la valeur du stocks par items.
Pour les 300 " je suppose que c'est l'option saisie des chiffres dans le tableau qui met le bazar ( pavé ou clavier) ?
Bonne fin de semaine et surtout remerciements pour l'aide efficace apportée à la solution de notre sujet...
Cordialement
jpt
Bonjour jpt et Eric,
J'ai vu ce sujet le 14 juillet et il m'a intéressé, mais avec la migration j'avais laissé de côté.
Je n'interviens pas sur le problème de départ car je pense qu'il est résolu avec Eric.
J'ai modifié le 1er fichier en créant une feuille "MVTS" et une feuille "Base"
La feuille base colonne "Stock initial" reprend les données de la feuille2 au 21/6. La colonne "Nouveau stock" est alimentée par les enregistrements saisis à l'aide du formulaire (page Accueil).
Ce formulaire avec 2 combobox en cascade facilite les enregistrements entrées et(ou) sorties.
On peut imaginer que la feuille MVTS soit vidée chaque mois et conservée en historique.
Personnellement je ne peux pas télécharger le dernier fichier mis en ligne par Eric.
A découvrir ,
Cdt
Henri
Bonsoir Henri
la solution est séduisante et je te remercie d'avoir passé du temps à nous faire cette proposition.
Je précise que notre niveau (bénévoles de notre association caritative) en informatique est limité...Retraités, nous essayons d'utiliser des outils modernes pour la gestion de nos activités, nous sommes plusieurs à faire les saisies...pas toujours facile de maintenir la rigueur nécessaire à celles-ci (lire le commentaire d'Eric sur les messages précédents pour les ""...)
Utilisateur unique je me laisserai tenter mais je crains que suite à absence, maladie de l'un des utilisateurs du programme , on ne fasse plus les saisies...et ne retournions à "la gomme et le crayon et calculette !
Pour ma curiosité personnelle et si tu as un peu de temps:
avec ton système dates inventaires choisies par l'utilisateur ?
Quid ajout ou suppression d'items ?
Quid de la valeur du stock ?
Encore merci d'avoir consacré du temps au sujet
jean paul t
Bonsoir Jean-Paul et le forum,
Effectivement quand on est plusieurs à manipuler l'outil informatique, il y a beaucoup plus de risques d'erreurs.
Cependant, j'ai retravaillé ton fichier initial en essayant d'être le plus simple possible.
Si j'ai bien compris, des produits rentrent gratuitement et sont ensuite vendus à un certain P.U. que vous devez fixer.
1. La feuille "Base" est le reflet de votre stock avec les données que j'ai recueillies avec l'inventaire du 21/6 en colonne C (stock initial) et en colonne E (P.U.). En colonne F une formule calcule les totaux pour chaque produit.
Ensuite j'ai enregistré dans la feuille "MVTS" les données jusqu'au 5/7 ce qui alimente la base en colonne F (nouveau stock) grâce à une formule. J'ai trouvé un produit en double: Ricoré
Les enregistrements des entrées et sorties sont donc à faire à l'aide du formulaire.
2. Une 2ème formulaire permet de gérer la base. A l'ouverture, le bouton Ajout est disponible pour ajouter de nouveaux produits en fonction de la catégorie (Entretien, Epiecrie et Frais). Le nouveau produite st ajouté à la base avec un tri alphabétique sur les colonnes A et B.
La listbox permet de choisir l'item qu'on veut modifier (uniquement stock initial et P.U.). Le bouton Ajouter disparait et les boutons Modifier et Supprimer deviennent visibles. Choix entre Modifier ou supprimer le produit choisi.
3. Un 3ème bouton en page Accueil permet d'imprimer la feuille Mvts (si on veut) avant de l'effacer suite inventaire. L'opération fait un copier-coller du nouveau stock vers stock initial.
Je reste à ta disposition si ça te convient ou si tu trouves des anomalies.
A te relire
Cdt
Henri
Bonjour Henri,
bonjour à tous,
Merci pour le fichier et les explications...et désolé pour le délai de ma réponse mais j'étais absent.
Ce qui est sur , c'est qu'avec ce système il faut mettre beaucoup de bonne volonté pour faire des bêtises...
Je réponds à tes questions...
Il s'agit d'une épicerie solidaire pour lesquels les produits sont gratuits pour certains ou achetés par nos soins avec les gains de produits d'initiatives ( vente de vêtements) et revendus au 1/4 du prix marché local...
1/ Inventaire effectué le jour de notre distribution alimentaire ( environ 21 entre septembre et juillet),dates indiquées sur les feuilles excel
2/ le relevé des prix permet d'en suivre l'évolution et de réagir si nécessaire et de valoriser le stock à l'instant t ( assurances)
3/ il arrive que l'on supprime ou ajoute des articles...( et c'est la que les ennuis commencent!)
4/ le stock initial de septembre 2016 est le stock de juillet 2016 ( période de fermeture )
mes questions :
à partir d'une feuille base telle que celle qui est jointe en annexe, aurais-je après mes saisies l'évolution de ce stock au cours de la période? : du 20/09/2016 au 04/07/2017
j'ai vu qu'avec ton principe les ajouts suppressions des items étaient facilités
est-ce que le calcul du stock prend en charge le dernier PU saisi ?
Peut-on visualiser l'évolution du PU / item ?
Par avance merci pour ton aide ,
cordialement
jean paul
Bonjour Jean-Paul et le forum,
Pour que le fichier que je te propose fonctionne correctement, il faudra impérativement travailler avec une seule base (feuillet Base)
J'ai fait un essai en créant une feuille "Stock évolution" telle que tu le souhaites mais les colonnes A et B doivent être identiques aux colonnes B et C de la Base.
A chaque date inventaire, utiliser le bouton REINITIALISATION de la page Accueil.
1. une copie des entrées, sorties et nouveau stock est faite dans la feuille "Stock évolution" dans les 3 1ères colonnes libres.
2. une impression ou une sauvegarde en PDF (au choix) de la feuille MVTS est faite.
3. la feuille MVTS est vidée et prête pour un nouveau mois.
4. la colonne C de la feuille Base est mise à jour avec les données de la colonne D ce qui permet de repartir avec les vrais chiffres du stock.
J'ai essayé de mettre à jour la feuille Base avec les nouvelles données (Catégorie Produits et désignation Produits) mais il se peut que tout n'est pas bon. La liste des Types de produits se trouve en colonne Z de la page Base. Ne pas modifier le désignation des produits car les calculs sont faits d'après leurs libellés. Bien les orthographier avant de commencer la saison.
Je n'ai pas encore vu la notion des suivis de PU.
A découvrir
Cdt
Henri
Bonjour Jean-Paul et le forum,
Le dernier fichier que je t'ai adressé (SUIVI EPICERIE 2016-2017_jpt_V1.xlsm) m'a tracassé car il ne répond pas exactement au besoin.
Il serait parfait si la base ne changeait pas (surtout en ajout de produits).
J'ai refait un autre avec une feuille Base qui est un tableau évolutif.
1. Au démarrage de la saison, on a une situation exacte du stock (colonnes A à H). Ces colonnes vont évoluer au fur et à mesure des entrées et sorties de produits enregistrés dans la feuille MVTS.
En cours de route on peut ajouter de nouveaux produits avec le formulaire de Gestion Base ou modifier par ex les P.U.
La liste des Types de Produits se trouve visible maintenant en colonne A de la page Accueil. Elle peut évoluer elle aussi.
2. Quand la journée d'ouverture est finie, avec le bouton REINITIALISATION on copie (comme tu le souhaitais) en historique mais dans la feuille Base à partir de la colonne J les entrées, sorties, stock et PU soit 4 colonnes à chaque fois.
On propose soit d'imprimer la feuille MVTS ou de la sauvegarder en fichier PDF.
Le nouveau stock par la prochaine ouverture est recalculé et mis à jour dans la colonne C (stock initial)
La feuille MVTS est vidée et prête pour la prochaine ouverture.
Avec ce nouveau fichier avec une Base unique modifiable on règle le problème des ajouts de produits. A mon avis il est préférable de se limiter à la fonction AJOUT en cours de période et n'utiliser la fonction SUPPRIMER que pour préparer la base avant la 1ère ouverture afin de garder l'historique pour toute la saison.
3. En page Accueil le montant total du stock est indiqué.
Bonnes vacances
cdt
Henri
Bonjour à tous,
N'ayant pas de nouvelles de Jean-Paul, j'avais laissé tombé ce fil.
Et comme il pourrait servir à d'autres, je me suis aperçu d'une petite erreur concernant la gestion des stocks.
En effet, si on veut supprimer un article une ligne de code est à modifier dans le formulaire gestion.
Il faut remplacer
Private Sub CommandButton3_Click()
'supprimer
If MsgBox("Voulez-vous supprimer cet enregistrement: " & Me.ListBox1 & "?", vbCritical + vbYesNo + _
vbDefaultButton2, "Suppression") <> vbYes Then Exit Sub
Ws.Rows(Me.ListBox1.ListIndex +2).Delete
InitListBox
End Subpar
Private Sub CommandButton3_Click()
'supprimer
If MsgBox("Voulez-vous supprimer cet enregistrement: " & Me.ListBox1 & "?", vbCritical + vbYesNo + _
vbDefaultButton2, "Suppression") <> vbYes Then Exit Sub
Ws.Rows(Me.ListBox1.ListIndex +3).Delete
InitListBox
End SubCdt
Henri
Bonjour Henri
j'ai de nouveau du temps pour me consacrer au sujet pour lequel vous m'aidez...
En reprenant le fil des messages je me suis aperçu que je n'avez pas répondu à ton dernier message...je m'en excuse et toujours merci pour ton aide et celle du Forum
Cordialement
jpt
Bonjour jpt et le forum
Voici la dernière version avec quelques corrections.
1.Affichage correct du stock disponible dans le formulaire "Gestion des entrées et sorties
Private Sub ComboBox2_Change()
Dim ligne As Long
Dim i As Integer
If Me.ComboBox2.ListIndex = -1 Then Exit Sub
ligne = Me.ComboBox2.List(Me.ComboBox2.ListIndex, 1)
TextBox4 = Ws.Cells(ligne, 3)
TextBox5 = Ws.Cells(ligne, 5)
End Sub2.Contrôle de la quantité sortie par rapport au stock disponible( ne peut pas être supérieure)
3.Prise en compte de ma modif précédente du 08/08.
Cdt
Henri
Bonjour Henri et le Forum
c'est super !
Nous allons le tester en grandeur nature la semaine prochaine et je ne manquerai de faire un retour d'expérience...mais le merci à tous les intervenants de ce sujet sera sincère.
J’espère qu'un jour je serai capable de rendre (un peu) l'aide apportée ces dernières semaines pour le traitement du sujet.
Cordialement à tous
jpt
