Puristen of niet, je hebt het wel grotendeels bij het rechte eind.
Je hebt 1 sheet nodig, centraal of decentraal, met alle barcodes, productomschrijving indien van toepassing en prijzen. Op zich snel in elkaar te zetten, afhankelijk van de hoeveelheid producten.
Eenmaal deze sheet opgezet, kun je in ieder geval één stap makkelijker maken; het scannen met bijbehorende productomschrijving en -prijs.
Een scanner kan geprogrammeerd worden om na invoer automatisch een enter mee te geven, en zo kun je snel barcodes scannen om de factuur verder automatisch te vullen. Let wel, heb je meer rijen nodig dan in je standaard template, moet je dus ter plekke handmatig de rijen met formules doortrekken.
Gezien de huidige opzet zal de hoeveelheid producten met de hand ingevoerd moeten worden. Automatisch (dus x keer scannen van eenzelfde product) en dit op 1 rij krijgen in de factuur vergt een compleet andere aanpak en is niet te adviseren in dit stadium.
Met behulp van de VLOOKUP kun je in de product-sheet een omschrijving en prijs ophalen. Inderdaad simpel:
VLOOKUP([cel met barcode];[tabelnaam of range];[positie van kolom in tabelnaam of range met waarde terug te halen;0 (=barcode moet exact overenkomen))
Let wel; de eerste kolom van de tabel of range waarin je zoekt, moet de zoekwaarde bevatten. In dit geval de barcode. De tweede kolom kan de productomschrijving bevatten en de derde kolom de prijs.
Op deze manier heb je een deel van het handmatige schrijf- of typwerk al geautomatiseerd.
De product-sheet kun je het beste in een table format zetten (home ribbon - format as table), zo heb je een handige lijst in een tabel met bijbehorende tabelnaam en zit je in de toekomst, wanneer je producten toevoegt of weghaalt, niet te kloten met ranges in bestaande formules.
Maar het tweede deel, het wegschrijven van alle waarden in een centrale sheet, is iets waar je toch al snel naar VBA moet stappen. Je kan een knop in je factuurlijst bijvoorbeeld aanmaken, deze knop schiet een VBA-functie af welke:
- de factuur afdrukt
- de informatie van de factuur opslaat in een (de)centrale database (kan een Excel-bestand zijn)
- de bonnummer verhoogt (kan gelinkt worden met een decentrale database om unnieke bonnummers te gebruiken voor alle kramen)
- de invoerbare waarden in template weer leegmaakt zodat de bon herbruikbaar is
Je hoeft dan niet een sheet per factuur te generenen, immers sla je alles op in een centrale database. Hier kun je later alles uit reproduceren.
Het gevaar bij het gebruik van een Excel-bestand als database is dat wanneer meerdere kramen tegelijk een factuur aanmaken, waarden overschreven worden. Om dit te voorkomen, zal je een best controlesysteem moeten inbouwen voor het wegschrijven. Dit zou je niet hebben wanneer er naar bijvoorbeeld een Access-database weggeschreven wordt.
Wat je wel kan doen, is in een Excel-bestand meerdere sheets per kraam gebruiken, en deze later combineren. Unieke bonnummers heb je dan niet (is op een andere manier wel weer mogelijk, maar vergt ook weer programmeerwerk in bijvoorbeeld VBA), dan zijn ze alleen uniek per kraam. Voor deze aanpak hoef je echter geen centraal bestand te hebben, dit kun je ook in een aparte sheet zetten van het Excel-bestand met factuur.
In alle eerlijkheid is dat makkelijk in een week te doen, voor iemand met Excel en VBA kennis. Alleen het centraal wegschrijven is een uitdaging, zoals ik eerder benoemde. Niet het wegschrijven zelf, maar een manier dat je niet bij gelijktijdig wegschrijven elkaars informatie overschrijft.
Kun je ook weer ondervangen door Access te gebruiken, of door de sheet niet deelbaar te maken en steeds te openen, aan te passen en te sluiten, foutmeldingen ondervangen wanneer de sheet al in gebruik is en opnieuw te proberen in b.v. x seconden etc. Maar dat vergt meer VBA kennis dan het aanroepen van de de print-functie e.d.
Wat handig is, hangt van het doel van de TS af. Moet de bonnummer uniek zijn voor alle kramen, of mag je dezelfde bonnummer hebben voor andere kramen? Ofwel, kraam 1 heeft bonnummer 1, 2 en 3, en kraam 2 heeft ook bonnummer 1, 2 en 3 of moet dat dan 4, 5 en 6 zijn?
Volstaat het om een deel al te automatiseren, of moet het complete pakket inclusief centraal wegschrijven gelijk gerealesieerd zijn?
Dat laatste zal TS niet zelf redden in een week, zoals velen al benoemd hebben..
Damn ye, you are a sneaking puppy, and so are all those who will submit to be governed by laws which rich men have made for their own security