Kezdőlap › Fórumok › Excel programozás › excel makró munkakezdés › Hozzászólás: excel makró munkakezdés
Szia!
A változók (kezdes és vege) string típusok.
A vege változót lehet „off”-ra vizsgálni. Tehát elég, ha csak ennyit teszel, és ha a 4. oszlopba „off” kerül, akkor mellé egy nullát tesz, különben lefut a munkaidő számítás.
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim kezdes As String
Dim vege As String
Dim perce As Integer
kezdes = Cells(Target.Row, 3).Value
vege = Cells(Target.Row, 4).Value
If Target.Column = 4 Then
If vege = "off" Then
Cells(Target.Row, 5).Value = 0
Else
perce = CInt(Minute(CDate(vege)))
Select Case perce
Case 0, 30
Cells(Target.Row, 5).Value = (vege - kezdes) * 24
Case 1 To 59
Cells(Target.Row, 5).Value = WorksheetFunction.RoundUp((vege - kezdes) * 24 / 0.5, 0) * 0.5
End Select
End If
End If
End Sub
A bolondállóság azt jelenti, hogy mennyire vizsgáljuk, hogy a felhasználó valóban helyes formátumú, intervallumú adatot írt be. Ha mások is használják, akkor ezt jobban szoktuk ellenőrizni, hogy ne adjon az első tévedésnél runtime hibát, vagy egyéb hibás működést.
Ezt a szintet neked kell eldönteni. Ez a kis progi most nem túl bonyolult, simán el lehet magyarázni, hogy hogy kell használni, és mi lesz ha nem jót ír be.
Lehetne vizsgálni mindkét oszlopban, hogy egyáltalán időt írt-e be, ezek hogy viszonyulnak egymáshoz (pl. a vége később van-e, mint az eleje), stb…
Imre
- A hozzászólás módosításra került: 8 years, 9 months telt el-horvimi.