• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

bezetting machines

Status
Niet open voor verdere reacties.

Spiesse

Gebruiker
Lid geworden
14 jul 2011
Berichten
902
beste forumisten,

hier ben ik dan nog es :) met deze keer een gloednieuw topic :)

in bijlage een bestand waarin productietijden berekend worden. Ik zou deze graag in een apart tabblad in een weekrooster zichtbaar krijgen...

de opzet van mijn bestand:
in het eerste tabblad bereken ik aan de hand van opgegeven minuten hoelang een machine bezet is voor een bepaald product te maken. hierin is altijd een 15 minuten ingerekend voor het klaarzetten van de machine, samen met de vermenigvuldiging van het aantal stuks met het aantal minuten om een stuk te maken.

zoals je ziet kan er meer dan 10 uur geproduceerd moeten worden (normaliter zou de tijdsnotatie ok moeten zijn).

nu wil ik op een volgend tabblad (uurrooster genaamd) een overzicht willen wanneer welk product het best kan gemaakt worden aan de hand van de nog beschikbare uren... In het voorbeeld heb ik de eerste 2 producten na elkaar gezet, elk met een verschillend kleur... Ik zou eventueel ieder product een ander kleur geven, zodat deze goed herkenbaar zijn op beide tabbladen...

zou dit mogelijk zijn via vba? of iets dergelijks? er zou dus moeten gekeken worden hoelang een product in beslag neemt om te maken en dan zichtbaar gemaakt worden in het overzicht...
mss een detail: per week zijn er gemiddeld een 14 projecten die kunnen gestart worden... (heb ik als info meegekregen)

de opzet is me redelijk gelukt denk ik, alleen nog de uitwerking op het tweede tabblad gaat me nog even het petje te boven :)

btw: in april en mei ga ik een cursus vba volgen :) :) :)

wie kan me een duwtje in de rug geven? ik zoek alleszins ook verder...

thx in advance!!!!

spiesse

Bekijk bijlage verdeling tijd in weekschema.xlsx
 
Ik denk niet dat het programma an sich een probleem hoeft te zijn.

Bij deze aanpak moet wel afgerond worden op 30 minuten. Tweede punt is: wat is "efficiënt" ? hoe definieer je dat? en dan doel ik op deze uitspraak
nu wil ik op een volgend tabblad (uurrooster genaamd) een overzicht willen wanneer welk product het best kan gemaakt worden aan de hand van de nog beschikbare uren...

Indien je daar voor jezelf goede regels aan kan stellen is het mogelijk dat in een module te steken.
 
hey wampier,

thx voor de reactie! enkel op die manier kan er nagedacht worden over hoe ik (lees we) tot een deftig werkbaar bestand kunnen komen :)

ik zou er vanuit gaan dat de producten zichzelf opvolgen op deze manier:

op tabblad 1 staan de planningsdatums waar ik eventueel rekening kan mee houden... :) of een macro :)

in principe zou in het uurrooster gekleurd moeten zijn en de vrije ruimtes niet... aan de hand van die vrije ruimtes moet er dan gekeken worden welk product nog kan bijgemaakt worden :)
 
maar hoe lees je de vrije uren dan? wie levert de kleurtjes in dat sheet? In principe kun je redelijk eenvoudig een lijst met "gaten" maken en daar tijden proberen in te passen. Echter kun je op die manier nooit garanderen dat iets gemaakt wordt voor de deadline. Als je de gehele planning bepaald is dat natuurlijk wat makkelijker.
 
hey wampier,

ik zit hier samen met de dame die de planning van de machines doet (nb mijn vriendin :))

de planningsdatum is de datum waarop moet begonnen worden met produceren. dan heeft de afdeling 5 werkdagen de tijd om het aantal af te werken. er zijn twee machines waarop tegelijk aan eenzelfde product kan gewerkt worden.

de levering van de kleurtjes zou automatisch mogen gebeuren :) :) hint hint

aan de uitleg van mijn vriendin wordt dit een huzarenstukje :) :) :)
 
Dat valt wel mee, maar de data die je presenteert moet daar wel op afgestemd worden. In mijn ervaring is dat moeilijker dan de VBA schrijven. Kleine productie-reeksen zijn relatief duur. Je wil vaak dus zoveel mogelijk productie draaien en dan een kleine reeks als het echt niet anders kan. Ook wil je dat misschien alleen doen als een bepaalde specialist beschikbaar is en nooit wanneer 1 van beide machines in onderhoud is. Je wil mogelijk ook niet van productie wisselen tijdens de schaft e.d.

Al dat soort factoren kan een computer niet makkelijk meenemen of slechts met heel veel extra controles. Wat nog wel kan is een weging meegeven aan de hand van de grootte van de order, de nabijheid van de deadline en dat soort zaken. De weging kun je dan gebruiken om de lijst te sorteren. Het zou ook helpen om de lijst te beperken tot alleen de items die de volgende week gedraaid moeten worden. Dat maakt het programma ook weer een stuk eenvoudiger. In het wilde weg wat proberen te programmeren heeft geen zin, want als de weging of voorwaarden veranderen moet het programma opnieuw geschreven worden.

Je kun ook naar deze post kijken http://www.helpmij.nl/forum/showthr...lijk-schakelen-middels-een-uploadfile-met-VBA

Hierin staat ook een interessant complex probleem. De voorwaarden zijn daar echter wel goed omschreven en dan is het maken van de logica ook eenvoudig.
 
bestaat de mogelijkheid om te starten vanaf de planningsdatum? dus de producten die die dag moeten gestart worden, in beeld te brengen, met hun productietijd die berekend is op het eerste tabblad?

weet je mss hoe ik een tijdsbalk kan kleuren, bv een half uur is een half gekleurde cel?

ik denk dat het nog effe brainstormen zal worden over het juiste hoe en wat voor ik met een werkbaar bestand op de proppen kan komen...
 
Je kunt de werkbalken zelf tekenen. De volgende macro in een module plakken en eens draaien wanneer blad2 geselecteerd is in uw voorbeeld:

Code:
Sub balkjes()
    y = [q2].Top
    x = [q2].Left
    h = [q2].Height
    For Each cell In Range([o2], [o9])
        tijd = cell.Value * 60 * 24
        tijd = Round(tijd / 5, 0)
        
        With ActiveSheet.Shapes.AddShape(msoShapeRectangle, x, y, tijd, h)
            .Fill.ForeColor.RGB = RGB(255 * (cell.Row Mod 2), 0, 0)
        End With
        x = x + tijd
    Next cell
End Sub
 
waar staat de o2,09 voor? slaat die op de kolom O op tabblad 1?
 
o2 en o9 op het actieve werkblad inderdaad. Het was zomaar even een klein voorbeeldje hoe je nauwkeuriger vakken kan maken
 
goedemorgen wampier,

is de macro zo aanpasbaar dat bv een uur kan gekleurd worden, gelinkt aan de productietijd op tabblad 1? met daarin het POnummer?
 
In principe is deze oplossing volledig aanpasbaar. Op dit moment neem ik 5 mintuen = 1 point. dus 12 punten per uur. Dat is in principe te verdelen hoe je wilt, afhankelijk van de beschikbare ruimte. Je kunt ook 1 punt per seconde nemen, maar dan wordt de breedte wel enorm :).

De macro is ook zo aan te passen dat eerst de oude balkjes worden verwijderd. De lijnen kunnen dunner en in een andere kleur, je kunt zelfs gradients, fills en plaatjes toevoegen. In principe bijna alles wat in powerpoint ook met een rechthoek kan.
 
goh, mag ik een verlanglijstje geven? :)

Sub balkjes()
y = [q2].Top
x = [q2].Left
h = [q2].Height
For Each cell In Range([o2], [o9])
tijd = cell.Value * 60 * 24
tijd = Round(tijd / 5, 0)

With ActiveSheet.Shapes.AddShape(msoShapeRectangle, x, y, tijd, h)
.Fill.ForeColor.RGB = RGB(255 * (cell.Row Mod 2), 0, 0)
End With
x = x + tijd
Next cell
End Sub

Als ik de 5 verander in bv 30 (vermoedelijk is die 5 de 5min die je instelt) dan gebeurt er niks... alé, er komt een streepje maar wordt niet groter als in je oorspronkelijke macro...

moet ik in het tweede tabblad het POnr overnemen per gelinkte cel? of?

kan je anders het bestand een stukje aanpassen? (om terug te komen op mijn verlanglijst)...? eventueel 15 min per point... en de aanpassing om de balkjes eerst te verwijderen voor de macro uitgevoerd wordt...

thx in advance!
 
Het streepje wordt uiteraard niet groter, maar kleiner. /30 betekend 1 punt per 30 minuten. dus slechts 2 punten per uur. Ik zal eens zien of ik de aanpassing kan maken.

Kun je eens aangeven welke kolom je nu precies wil zien? en welk blad? je eerste blad heet "blad2" en je tweede blad heet "blad3" het is nogal verwarrend.
 
hey wampier,

alvast bedankt om me te blijven meegaan :)

wel, in principe zou ik al enorm geholpen zijn met het volgende:

op blad 1 (waar de berekening van de uren productie gemaakt worden), zou er op het einde van de tabel een lijn moeten getrokken worden die de tijd aantoont in kleur...
in bijlage een voorbeeldje...
op blad 2 zou ik dan een draaitabel plaatsen zodat er zichtbaar is hoeveel uur productie er gepland staat op welke planningsdag, zodat er kan geschoven worden...

mss dat ik, na jouw aanpassingen, weer concreter kan beginnen uitwerken met de persoon in kwestie...

dus hier het bestand Bekijk bijlage Kopie van verdeling tijd in weekschema-3.xlsx
 
zoiets dan?

Code:
Sub balkjes()
    While ActiveSheet.Shapes.Count
        ActiveSheet.Shapes(1).Delete
    Wend
 
    For Each cell In Range([o2], [o50000].End(xlUp).Offset(-1))
        If cell.Value <> "" Then
            y = cell.Offset(0, 2).Top
            x = cell.Offset(0, 2).Left
            h = cell.Offset(0, 2).Height
            b = cell.Offset(0, 2).Width
            tijd = cell.Value * 60 * 24
            blokskes = Application.WorksheetFunction.RoundDown(tijd / 60, 0)
            deel = tijd Mod 60
            With ActiveSheet.Shapes.AddShape(msoShapeRectangle, x, y, (blokskes * b + (deel / 60 * b)), h)
                .Fill.ForeColor.RGB = RGB(255 * (cell.Row Mod 2), 0, 0)
                .Line.Weight = 1
                .Line.ForeColor.RGB = 0
            End With
            x = x + tijd
        End If
    Next cell
End Sub
 
Laatst bewerkt:
Om kleinere belken te krijgen hoef je alleen maar de breedte van de kolommen aan te passen. De rest gaat automatisch!! let wel, de breedte van alle kolommen moet wel hetzelfde zijn. (meerdere kolommen selecteren, rclick: kolombreedte-> instellen op "4". en de originele macro opnieuw draaien.
 
hhm, ik merk op dat de uren boven de 10u niet correct weergegeven worden in de kleurbalk... zou het aan mijn tijdsnotatie liggen of aan de macro?
 
Ik ben daar naar aan het kijken. maar volgens mij kloppen de balkjes en niet de kolom :)

kijk naar rij 35: 1025 stuks a 2 minuten = 2050 minuten = 34 uur

Mijn macro laat netjes 34 blokjes zien, maar de kolom slechts "10:00"
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan