verbruik consummatie bijhouden

  • Onderwerp starter Onderwerp starter JeTu
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

JeTu

Gebruiker
Lid geworden
10 mei 2017
Berichten
30
Voor een eetfestijn heb ik een VBA document gemaakt wat alles berekend. Wanneer de klant betaald heeft heb een knop voorzien die alles leeg maakt voor die tafel. (een tabblad per tafel) Er is een dubbele controle waarbij de berekening op voorhand wordt gemaakt en dus het verbruikte eten en drinken reeds is ingevuld.

Nu zou ik een statistiek willen bijhouden van de verbruikte consummaties. Ik wil wanneer ik op de knop "leeg maken" klik dat de verbruikte goederen van die tafel worden bijgeteld bij de daarvoor voorzien variabele. Heeft iemand een idee hoe ik dit zou kunnen oplossen.
 
Ja hoor:
variabele=variabele + verbruikte goederen;)
 
bedankt voor de vlugge reactie.
tot zover was ik ook maar door de dubbele controle waarbij de berekeningen op voorhand worden gemaakt. (dit voor een vlugge bediening aan de kassa) wordt het verbruik van iedere tafel opgeteld.
Bij die variabele zou enkel het verbruik van de af te sluiten tafel mogen opgeteld en dat zie ik niet in hoe ik dat moet oplossen.
 
Die knipoog betekent eigenlijk dat daar zonder voorbeelddocument weinig over te zeggen is.
 
in bijlage voorbeelddocument.
De roze cellen worden ingevuld. De knop "berekenen" rekent de bedragen en totalen uit per tafel.
De knop "maak leeg" maakt de cellen leeg na betaling maar zou hier ook de stock moeten bijhouden.
De stock wordt bijgehouden op het tabblad "totalen".
Tabblad "A" zijn de tafels met de namen.
"T1", "T2" ..... zijn de tafels met de bestellingen
 

Bijlagen

Je gaat me toch niet vertellen dat je voor alle 87 tafels een eigen werkblad gaat gebruiken? Maak gebruik van één werkblad of formulier en zet de data van alle tafels in één werkblad.
En waarom zo ingewikkeld doen met 1ste, 2de en 3de, je kunt toch gewoon het aantal opgeven?
En de berekening van aantal x prijs kun je veel makkelijker direct in het werkblad uitvoeren dan via een onnodige omweg in VBA, 1656 regels om het factuurbedrag te berekenen!

Ik raad je aan om nog eens te overwegen of je op deze weg wilt doorgaan, ik ga hier verder geen tijd aan besteden.
 
Bij nader inzien toch even een voorzetje gemaakt. Data wordt automatisch opgeslagen bij tafelwissel. Toevoegen aan Totaal bij gebruik knop "Leegmaken" zit er nog niet in.
 

Bijlagen

@ AHulpje,
Als ik dit mag zeggen op een ander zijn vraagstelling.

Dank voor de leerrijke geboden oplossingen!
Probeer er steeds wat van te leren:)
 
Bedankt voor het voorzetje. Die werkwijze is voor mij onbekend. Kan u mij soms een uitleg geven via link of andere bron om dit te begrijpen. Heb dit nooit geleerd.

De opzet is zeer goed, maar de opmaak zou behouden moeten blijven volgens de vereniging.

Het dessert is moeilijk uit te rekenen met een geneste als-functie. (Bezie eens de voorwaarden die ze vragen in mijn opmaak .) Daarom de VBA opmaak
 
Met "behouden van de opmaak" bedoel je de layout van de tafel-werkbladen? Maar wat is de bedoeling van de kolommmen met 1ste, 2de, 3de etc.? Je kunt toch gewoon het totaal aantal telkens met de bestelde hoeveelheid verhogen, dan heb je maar één kolom voor het aantal bestelde items nodig. Maar als je vast wilt houden aan de drie kolommen voor desserts en zes voor de dranken dan kan dat ook, dan komen er 7 kolommen bij op het werkblad Data.

En wat is er moeilijk aan het uitrekenen van het dessert? Aantal x prijs per eenheid? En dat eventueel drie keer als je vasthoudt aan de kolommen met 1ste, 2de en 3de. Dat kan gewoon in het werkblad.

Ik neem aan dat het de bedoeling is dat zodra een tafel wordt "leeg gemaakt" de genuttigde hoeveelheden worden opgeteld bij het werkblad Totalen en dat de betreffende rij op werkblad data ook leeggemaakt moet worden.
 
Eerst was ik van het zelfde idee als u, 1 kolom en alles optellen, maar de vereniging zag daar problemen in. Vandaar die opmaak.
De lay-out van de tafelwerkbladen die ik maakte is goed, maar de lay-out die u voorstelde is beter volgens mij (maar die begrijp ik niet goed).
Eerst ter info, de letters staan voor uitbreiding van het aanbod. Zo zou er bij een volgend eetfestijn het dessert chocomousse bijkomen aan de zelfde voorwaarden als gebak of ijs in combinatie met koffie of thee
Het volwassenmenu en kindermenu wordt meestal door 1 persoon, 1 familie of 1 vereniging betaald. De drank wordt soms per persoon aan een zelfde tafel betaald. Om die reden en vroegere ervaring werden 6 kolommen voorzien met ieder hun totaal. (Moeten minder rekenen aan de kassa).
Wat de koffie betreft, deze wordt opgemaakt per bestelling. Hier wordt rekening gehouden met:

Koffie, thee, gebak, c, d of e alleen dan komt de prijs naast het product

koffie + thee > gebak + ijs + c + d + e = vermindert tarief 5,5 €

koffie + thee = gebak + ijs + c + d+ e = vermindert tarief 5,5 €

koffie + thee < gebak + ijs + c + d + e = vermindert tarief 5,5 €
Cel K28 moet leeg blijven (wordt geblokkeerd) en de cel L28 geeft de prijs van de gezamenlijke producten. De rest wordt in de cel naast het product vermeld. Vb: 3 koffies en 2 gebakken dan verschijnt in cel L28, 11€ en in cel L20, 2,5€.

Deze berekeningen werden mij zo opgelegd door de vereniging.

Bij iedere "Maak leeg" na de betaling van de tafel wordt het verbruikte goed bij de totalen opgeteld. Daarvoor maak ik een vergelijking met het tafelnummer, en verbruikte goederen.
Vb: 'Varkenswangen
var = Worksheets("Totalen").[D3].Value
If Worksheets("tafel").[C1].Value = 1 And Worksheets("tafel").[D3].Value <> "" Then
var = Worksheets("tafel").[D3].Value + var
Worksheets("Totalen").[D3].Value = var
End If

Dit is wel een lange programmacode voor alle artikels. Dit kan misschien korter. Maar weet niet hoe.
 
Dit is wat ik zocht. Bedankt. Maar toch nog een klein probleem dat ik niet opgelost krijg.

Wanneer ik de code “Maak leeg” stap voor stap probeer (F8) dan lukt het perfect.
Maar via de knop ‘Maak leeg’ in het blad ‘Tafel’ krijg ik steeds de foutcode

Application.Goto Range("C1") in het codevenster Sub LeegmakenTafel().

Tevens opent het blad ‘Totalen’ en dat mag niet gebeuren voor de mensen aan de kassa.
Dit is bestemd voor de vereniging die een overzicht van de verkoop van de dag vraagt.
 
Verwijder die ene regel en vervang het huidige codeblokje door deze.

Code:
With Sheets("Tafel")
        .Unprotect
        .Range("D3:D8,D12:D16,D20:D30,F20:F30,H20:H30,M3:M30,O3:O30,Q3:Q30,S3:S30,U3:U30,W3:W30,AB6").ClearContents
        .Range("G1") = vbNullString
        Application.Goto .Range("C1")
        .Protect Contents:=True
End With
 
Die fout had ik ook geconstateerd en rechtgezet, maar nog niet hier geplaatst omdat ik geen reactie op mijn vragen kreeg (#13). Hierbij alsnog.
 

Bijlagen

Bij het nazien van dessert in het blad “Totalen “ staat in kolom E de prijs vermeldt. Dit komt er bij na de tweede invoer en leegmaken van dezelfde tafel.

Wat men ook vroeg is de naam onder het tafelnummer te vermelden. Reden soms ontbreekt het Tafelnummer of Naam. Dit om de gegevens gemakkelijk terug te vinden. De tafelnummering begint van 1 tot 87

Kan u mij kort even zeggen wat de onderstaande code wil zeggen?

Set isect = Application.Intersect(Target, Range("D20:D30,F20:F30,H20:H30"))

If Not isect Is Nothing Then BerekenDessert Target.Column
 
Oeps, kolom E op werkblad Totalen wordt nu niet meer gevuld.
Als er iets wordt ingevuld op het werkblad Tafel bepalen de twee genoemde coderegels of er dessert(s) zijn besteld. Target is de cel waarin iets is ingevuld en Set isect kijkt of dat een van de dessertkolommen is, zo ja (isect <> Nothing) dan wordt de dessertberekening uitgevoerd voor de kolom waarin een aantal is ingetikt (Target.Column).
Toch weer een vraag betreffende het werkblad Tafels. Ik heb de rangschikking en kleur overgenomen uit jouw versie van bericht #5, daarin ontbreekt een aantal tafelnummers. Nu begrijp ik dat die er wel bij moeten? Heeft de tafelrangschikking iets met de werkelijkheid te maken? Is die kleur nog van belang? Ik zal eens kijken of het niet te veel werk is om ook de naam van de gast op dat werkblad te vermelden, en natuurlijk weer uit te poetsen als de tafel wordt afgeruimd.
 
Bij de tafelnummers gebruik zij 2 boeken. 1 tot 50 en 51 tot 87. Daarom de twee kleuren. De namen en tafelnummers geven dikwijls problemen. Werk van vrijwilligers daardoor soms moeilijkheden en verwarring bij notaties, doch dit is geen afbreuk aan de mensen die helpen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan