virtuele stock in excel mbv VBA

Status
Niet open voor verdere reacties.

George22

Gebruiker
Lid geworden
5 mrt 2007
Berichten
5
Beste VBA liefhebbers,

Ik heb enige ervaring met excel en een weinig met vba. Ik heb nu volgend probleem(pje) :eek:

Ik gebruik een Excel document waarmee ik productiebons (formulaties) mee moet afprinten.

Tabblad 1 met naam : BATCHNR

Vanaf tabblad 2 tot voorlaatste hebben ze namen van producten.
Het aantal en volgorde kan veranderen.

Laatste tabblad heeft naam END.

In BATCHNR staat bovenaan in cel I5 het hoogste batchnummer van alle tabbladen. Dit doe ik automatisch met volgende formule in cel I5 =MAX('BATCH NR:END'!I5) (alle batchnrs op de verschillende tabbladen staan in cel I5. Alle tabbladen (producten) zijn op eenzelfde manier opgebouwd.

Op Tabblad 1 (BATCHNR) staat ook een lijst (vanaf cel A5 naar beneden toe) die uitbreidbaar moet zijn. Deze lijst bevat nummers (=namen) van grondstoffen (bvb 10-10). In de kolom ernaast (vanaf B5 naar beneden toe), staan de aantal kilogrammen die nog in voorraad zijn van die grondstof. Dit moet fungeren als een soort “virtuele stock”.

Elk tabblad met naam van een product, bevat de formule, en dus ook de nummers (=namen) en hoeveelheden van de benodigde grondstoffen voor een batchproductie. Elk product heeft natuurlijk een andere formulatie dus verschillende nummers komen voor op elk tabblad. De hoeveelheden (en soms zelfs de formule zelf) van elke batch kunnen veranderen. Die geef ik manueel in in excel.

Is het nu mogelijk om op een manier voor het volgende te zorgen:

Stel ik moet een productiebon afprinten.
Ik zie in tabblad BATCHNR welk batchnummer het hoogste was. Ik ga naar het tabblad van het product dat ik moet maken. Ik typ het batchnummer+1 in cel I5 van dit tabblad. Ik past desgewenst in dat tabblad de hoeveelheid aan die moet geproduceerd worden.
Ik ga terug naar tabblad BATCHNR, daar wil ik een knop, die als ik erop druk, het blad met hoogste BATCHNR (dat dat ik net aangepast heb) afprint EN tegelijk ook de benodigde grondstoffen aftrekt in de “virtuele stock”.
Het afprinten van een productieblad is de bevestiging dat deze grondstoffen verbuikt zullen worden.

Natuurlijk moet ik ook de hoeveelheden grondstoffen in BATCHNR manueel kunnen aanpassen wanneer deze aangeleverd worden.

Als extra controle en wil ik ook dat van elke batch die gemaakt (lees formule die geprint wordt), de datum, naam van het product, de hoeveelheid en het lotnummer worden opgeslagen in een lijst in tabblad END (of indien mogelijk in een aparte excel file aangezien deze lijst zal blijven groeien).

Ik weet dat dit veel gevraagd is, maar als iemand me al op weg zou kunnen helpen met een idee voor een deel van men vraag of een stukje code hoe ik dit het best aanpak...

Met vriendelijke groeten,

George 22
 
Dag Georg,

Je wilt van een bepaald product de gegevens of bepaalxde gegevens afdrukken.

Het eenvoudigste lijkt mij dat je op een userform een combobox maakt waarin de product namen worden opgeslagen.

Je drukt dan op een knop Afdrukken en wat je wilt wordt afgedrukt.

Ik wil best wat voor je ontwikkelen, maar stuur dan eens je (vereenvoudigde) bestand en maak een puntsgewijze opsomming wat je voor gegevens hebt en wat je er mee wilt. Hoe eenvoudiger hoe gemakkelijker te begrijpen.

Gegroet,

Axel.
 
Beste Axel,

Ik heb een klein bestandje gemaakt TEST.xls als voorbeeld. In dit bestand staat ook de nodige uitleg.

Ik weet dat het niet zo simpel is om goed uit te leggen wat ik nodig heb, maar dit excel filetje zal veel verduidelijken (hoop ik)

Alvast bedankt voor de moeite!

Groeten

George
 

Bijlagen

Dag George,

Ik heb je bestand bekeken en je vraagt of dit wel de juiste oplossing is. Ik denk van niet. Let wel, het gaat zo wel, maar je bent de hele tijd door je sheets aan het springen en zoeken. En dat is wat je nou aan de computer moet overlaten. Die kan dat goed en raakt niet overstuur.

Ik heb een eerste opzet gemaakt van zoals het kan worden. Bekijk het eens en als het was is (met de nodige aanpassingen, want ik ken de situatie niet) dan kunnen we het proberen tot een goed einde te brengen.

Open Voorraad&verkoop en klik er hier en daar maar eens op los.

Succes,

Axel.
 

Bijlagen

Goedeavond Axel,

ik heb je bestandje bekeken, maar dit is toch niet echt wat ik nodig heb.
ik heb enkel een systeem nodig om productiebonnen (tabblad met naam product x) af te printen, ze een lotnummer te geven en de grondstoffenvoorraad per keer dat een productiebon afgeprint wordt automatisch aan te passen. (afprinten + nieuw hoogste lotnr geven = bevestiging dat deze productie uitgevoerd zal worden, dus moet de grondstoffenvoorraad aangepast worden)

alle formulaties die ik nodig heb zijn al ingegeven in excel. het zoeken naar een tabblad is niet zo een probleem, dit gaat vlot.

het is een lossstaand systeem, heeft op zich niks met klanten en leveranciers te zien. de grondstoffen krijgen een nummer omdat deze soms van verschillende leveranciers komen (afhankelijk van beschikbaarheid, prijs...) en om de formulaties wat te beschermen natuurlijk.

alvast een dikke merci voor de moeite en tijd die je erin steekt! :o

iets concretere vragen (voor de file TEST die ik upgeload heb):
hoe kan ik ervoor zorgen dat als ik op de knop die in BATCH NR moet komen klik, dat dan:

1) automatisch het tabblad met hoogste lotnr afgedrukt wordt?
2) automatisch de verbruikte grondstoffen afgetrokken worden van de grondstoffenvoorraad op BATCH NR?

Dus de code moet zoeken naar tabblad productie bon met hoogste lotnr, en daarin zoeken naar grondstofnummers.
De kg van bvb 10-10 (kolom C in productiebon) moet dan afgetrokken worden van kg (kolom B) naast 10-10 (kolom A) in BATCH NR.

en file moet zichzelf saven als laatste actie

khoop dat het iets duidelijker is.. kvind het zelf moeilijk om goed uit te leggen wat ik nodig heb. :confused:
het is een beetje omslachtig, maar stap voor stap kom ik er wel..

Groeten,

George
 
> virtuele stock in excel mbv VBA

Dag George,

Antwoord 1: Zorg dat als een lotnummer wordt afgedrukt (en dit is altijd het hoogste lotnummer) dit nummer plus het sheetnummer wordt opgeslagen in sheet Batch.

Antwoord 2: Bij het afdrukken van de bestelling de volgende code wordt uitgevoerd:

Public Sub Afhandelen()
Dim i As Integer
Dim l As Integer
Dim n As Single
Dim r As Integer

With ActiveSheet
l = .Cells(3, 2).Value
For i = 11 To 30
If .Cells(i, 4).Value = "kg" Then
n = .Cells(i, 3)
Select Case .Cells(i, 1)
Case "10-10"
r = 12
Case "10-30"
r = 13
Case "30-10"
r = 14
Case "65-25"
r = 15
Case "65-34"
r = 16
Case "65-50"
r = 17
Case "90-01"
r = 18
End Select
With ActiveWorkbook.Sheets(1)
.Cells(r, 2) = CSng(.Cells(r, 2)) - n
End With
End If
Next
End With
ActiveWorkbook.Sheets(1).Cells(1, 2) = l
End Sub

Antwoord 3: Opslaan is Activeworkbook.Save

Succes,

Axel
 
Beste Axel,

Met jou hulp en die van nog een ander forum kan ik verder met alles. :thumb:

een dikke merci!

Groeten

Opgelost dus :D
 
Met jou hulp en die van nog een ander forum kan ik verder met alles. :thumb:

Het is absoluut niet netjes om te cross-posten, doe daar niet meer aan mee in het vervolg. Of je vragen zouden wel eens compleet genegeerd kunnen worden.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan