< návrat zpět

MS Excel


Téma: Plán výroby rss

Zaslal/a 23.8.2011 21:36

Dobrý den,18181818
vytvářím sešit, který bude sloužit k přehledu výroby.Základní myšlenkou je porovnávání plánu proti skutečnosti.Mám,ale problém.V "plánu" mám více druhů dílů,ale nekteré se opakují.Jediný rozdíl je v datu kdy se má díl vyrobit.Potřebuji po automatickém načtení čtečkou,aby se označil nejstarší díl.Momentálně potřebuju hlavně pošťouchnout jak dál.Díky mnohokrát. 3

Zaslat odpověď >

#005861
avatar
Vícenásobně to je možné počítat přes makro a vzorce DSUMA. Uděláš si kostru na jeden výpočet v cyklu procházíš plán a počítáš co tě zajímá, výsledek zapíšeš do daného řádku. Pokud se týče čtečky, pak to většinou nebývá přímo spojené s EXCELEM ale máš nějaký výrobní lowlevel a čtečka je napojená na něj. Z vyššího levlu pak ovládáš provoz a můžeš si i načíst data do excelu. Pak Ti stačí přístup přes ODBC (ADO) na data nebo cokoli podobného na načtení do EXCELU. Pokračuj ... R.citovat
#005863
avatar
Situace: díl xxx..yyy se měl vyrobit 1.1,ale nebyl vyroben.Přišla další objednávka,na ten samý díl xxx..yyy.Tentokrát na dva díly.Ale vyrobeny budou pouze dva.První potřebuji odepsat ten nejstarší a potom jeden z nové objednávky.A jde mě o to jak jednoduše říct excelu,že má odepisovat díly od nejstarších.Čtečka načte pouze info xxx..yyy.citovat
#005864
avatar
A - Vyrobek
B - Datum (setříděný)
C - Požadavek na vyrobu
D - Vyrobene kusy

Makro dopis_vyrobu(vyrobek As String, nove_kusy As Long)
vyrobek := Text ve sloupci A
nove_kusy := počet kusu, které se mají rozdělit.

Makro Test_vyroby()
Vzorove spuštění - musíš ošefovat čtečku a hodnoty podle tohoto vzoru pouštět do makra "dopis_vyrobu"

Stačí takto ?
Option Explicit
'--------------------------------------------------------'
Sub dopis_vyrobu(vyrobek As String, nove_kusy As Long)
'--------------------------------------------------------'
Dim c As Range
Dim s As String
Dim Sl_vyroby As Long
Dim Sl_pozadavek As Long
Dim pozadavek As Long
Dim vyrobeno As Long
Dim rozdil As Long
Sl_vyroby = 3 ' sloupek D
Sl_pozadavek = 2 ' sloupek C
With ActiveSheet
With Range("A1:A" & Range("A65536").End(xlUp).Row)
Set c = .Find(vyrobek, LookIn:=xlValues)
If Not c Is Nothing Then
s = c.Address
Do
vyrobeno = c.Offset(0, Sl_vyroby).Value
pozadavek = c.Offset(0, Sl_pozadavek).Value
' nejdrive otestuji, jestli vyroba odpovida pozadavku
' pokud ANO pak neni nutne pripisovat kusy
If pozadavek > vyrobeno Then
rozdil = pozadavek - vyrobeno
' pokud je kusu mene nebo presne pak ...
If nove_kusy <= rozdil Then
c.Offset(0, Sl_vyroby).Value = vyrobeno + nove_kusy
nove_kusy = 0
Else
' pokud je kusu vice pak ...
c.Offset(0, Sl_vyroby).Value = vyrobeno + rozdil
nove_kusy = nove_kusy - rozdil
End If
End If
Set c = .FindNext(c)
' najdeme dalsi vyskyt vyrobku
Loop While Not c Is Nothing And c.Address <> s And nove_kusy <> 0
Set c = Nothing
End If
End With
End With
End Sub
'--------------------------------------------------------'
Sub Test_vyroby()
'--------------------------------------------------------'
Call dopis_vyrobu("xxx..yyy", 3)
End Sub
'--------------------------------------------------------'
citovat
#005891
avatar
Omlouvám se,jsem mimo zaměstnání.Kouknu na to na konci týdne.Ale ,zatím díky moc.citovat

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje