Employee In-Out Board v1.0
Employee In-Out Board v1.0
4
Your Free Workbook The Training Video Got Questions?
Download Here Watch Here Join Our 65K Community
VBACodePrint
AUTO WORKSHOP USERFORM DATA GETTING THINGS DONE MULTI-LINGUAL PURCHASE MANAGER
MANAGER (14-327) MAPPING (24-326) (24-325) INTERGRATION (24-324) (24-323)
USERFORM POINT OF ULTIMATE SHOPPING TREE VIEW CONTROL INVOICE WITH THE ULTIMATE CRM
SALE (24-322) LIST (24-321) (23-320) INSTALLMENT PAYMENTS APPLICATION (23-318)
(23-319)
1 Option Explicit
2
3 Private Sub Worksheet_SelectionChange(ByVal Target As Range)
4 If Target.CountLarge > 1 Then Exit Sub
5 If Shapes("ColorPalette" ).Visible = True Then Shapes("ColorPalette" ).Visible = msoFalse
6
7 'Show color palette
8 If Not Intersect(Target, Range("C8:C19" )) Is Nothing Then
9 With Shapes("ColorPalette" )
10 .Left = Range("C" & Target.Row).Left
11 .Top = Range("C" & Target.Row + 1).Top
12 .Visible = msoCTrue
13 End With
14 End If
15
16 'Default Location Selection
17 If Not Intersect(Target, Range("D9:D18" )) Is Nothing And Range("B" & Target.Row).Value <> Empty
Then
18 Range("D9:D18" ).ClearContents
19 Target.Value = Chr(252) 'Checkmark
20 End If
21
22 End Sub
1 Option Explicit
2
3 Private Sub Worksheet_Change(ByVal Target As Range)
4 If Not Intersect(Target, Range("H2" )) Is Nothing And Range("H2" ).Value <> Empty Then
RefreshBoard
5 End Sub
6
7 Private Sub Worksheet_SelectionChange(ByVal Target As Range)
8 If Target.CountLarge > 1 Then Exit Sub
9 If Shapes("Calendar" ).Visible = True Then CalendarHide
10 If Not Intersect(Target, Range("H2" )) Is Nothing Then CalendarShow
11 'On Checkbox selection
12 If Not Intersect(Target, Range("D4:D28" )) Is Nothing And Range("E" & Target.Row).Value <> Empty
Then
13 If Target.Value = Chr(111) Then Target.Value = Chr(254) Else Target.Value = Chr(111)
14 Range("E4" ).Select
15 RefreshBoard
16 End If
17 End Sub
1 Option Explicit
1 Option Explicit
1 Option Explicit
1 Option Explicit
1 Option Explicit
2 Dim SelRow As Long, IconName As String, PicPath As String
3
4 Sub Admin_SetLocationColor()
5 ActiveCell.Interior.Color = Admin.Shapes(Application.Caller).Fill.ForeColor.RGB
6 Admin.Shapes("ColorPalette" ).Visible = msoFalse
7 End Sub
8
9 Sub BrowseForEmployeePicFolder()
10 Set PicFolder = Application.FileDialog(msoFileDialogFolderPicker)
11 With PicFolder
12 .Title = "Browse Product Picture Folder"
13 .AllowMultiSelect = False
14 If .Show <> -1 Then GoTo NoSelection
15 Admin.Range("C4" ).Value = .SelectedItems(1)
16 End With
17 NoSelection:
18 End Sub
19
20 Sub BrowseForMainSharedFolder()
21 Dim SharedFolder As FileDialog
22 Set SharedFolder = Application.FileDialog(msoFileDialogFolderPicker)
23 With SharedFolder
24 .Title = "Please select the main shared folder within Dropbox as instructed by your
Administrator"
25 .AllowMultiSelect = False
26 If .Show <> -1 Then GoTo NotSelected
27 Admin.Range("C3" ).Value = .SelectedItems(1) 'Full Folder Path
28 NotSelected:
29 End With
30 End Sub
1 Option Explicit
2 Dim LastRow As Long, LastResultRow As Long, ResultRow As Long
3 Dim BoardRow As Long, LocRow As Long, EmplRow As Long, TypeRow As Long
4 Dim EntryID As String, ClockIn As String, ClockOut As String, Location As String, EmplType As
String, EmplID As String
5 Dim LocColor As String, EmplName As String, PicPath As String, PicName As String
6 Dim BoardShp As Shape
7
8 Sub Board_NextDay()
9 EmplBoard.Range("H2" ).Value = EmplBoard.Range("H2" ).Value + 1
10 End Sub
11
12 Sub Board_PrevDay()
13 EmplBoard.Range("H2" ).Value = EmplBoard.Range("H2" ).Value - 1
14 End Sub
15
16 Sub Board_Today()
17 EmplBoard.Range("H2" ).Value = Date
18 End Sub
19
20 Sub RefreshBoard()
21 'Clear out existing board
22 For Each BoardShp In EmplBoard.Shapes
23 On Error Resume Next
24 If InStr(BoardShp.Name, "BoardEnt" ) > 0 Then BoardShp.Delete
25 If InStr(BoardShp.Name, "BoardPic" ) > 0 Then BoardShp.Delete
26 On Error GoTo 0
27 Next BoardShp
28
29 'Get Entry Data
30 With EntryDB
31 LastRow = .Range("A99999" ).End(xlUp).Row
32 If LastRow < 4 Then Exit Sub
33 If EmplBoard.Range("D4" ).Value = Chr(111) Then 'Include both clocked in and clocked out
113 Entry_Load
114 End Sub
1 Option Explicit
2 Dim EntryRow As Long, EntryCol As Long, DefLocRow
3
4 Sub Entry_ClockIn()
5 EmplBoard.Range("L8" ).Value = Now 'Current Date & Time
6 Entry_SaveUpdate
7 End Sub
8
9 Sub Entry_ClockOut()
10 EmplBoard.Range("L10" ).Value = Now 'Current Date & Time
11 Entry_SaveUpdate
12 End Sub
13
14 Sub Entry_Delete()
15 If MsgBox("Are you sure you want to delete this Time Entry?" , vbYesNo, "Delete Entry" ) = vbNo
Then Exit Sub
16 With EmplBoard
17 If .Range("B3" ).Value = Empty Then GoTo NotSaved
18 EntryRow = .Range("B3" ).Value
19 EntryDB.Range(EntryRow & ":" & EntryRow).EntireRow.Delete
20 NotSaved:
21 RefreshBoard
22 Entry_New
23 End With
24 End Sub
25
26 Sub Entry_Load()
27 With EmplBoard
28 If .Range("B3" ).Value = Empty Then
29 MsgBox "Please select an correct entry to load"
30 Exit Sub
31 End If
32 EntryRow = .Range("B3" ).Value
33 For EntryCol = 2 To 7
34 .Range(EntryDB.Cells(1, EntryCol).Value).Value = EntryDB.Cells(EntryRow, EntryCol).Value
35 Next EntryCol
36 If .Range("L8" ).Value = Empty Then 'Not Clocked In
37 .Shapes("ClockInBtn" ).Visible = msoCTrue 'Show Clock In
38 .Shapes("ClockOutBtn" ).Visible = msoFalse 'Hide Clock Out
39 ElseIf .Range("L8" ).Value <> Empty And .Range("L10" ).Value = Empty Then
40 .Shapes("ClockInBtn" ).Visible = msoFalse 'Hide Clock In
41 .Shapes("ClockOutBtn" ).Visible = msoCTrue 'Show Clock Out
42 Else
43 .Shapes("ClockInBtn" ).Visible = msoFalse 'Hide Clock In
44 .Shapes("ClockOutBtn" ).Visible = msoFalse 'Hide Clock Out
45 End If
46 End With
47 End Sub
48
49 Sub Entry_New()
50 With EmplBoard
51 .Range("B2,L4:L10" ).ClearContents
52 .Range("L4" ).Value = Admin.Range("I7" ).Value 'Default Employee name
53 On Error Resume Next
54 DefLocRow = Admin.Range("D9:D18" ).Find(Chr(252), , xlValues, xlWhole).Row
55 On Error GoTo 0
56 If DefLocRow <> 0 Then .Range("L6" ).Value = Admin.Range("B" & DefLocRow).Value 'Default
Location
57 .Shapes("ClockInBtn" ).Visible = msoCTrue 'Show Clock In Button
58 .Shapes("ClockOutBtn" ).Visible = msoFalse 'Hide Cloc Out
59 End With
60 End Sub
61
62 Sub Entry_SaveUpdate()
63 With EmplBoard
64 If .Range("L4" ).Value = Empty Or .Range("L6" ).Value = Empty Or .Range("L8" ).Value = Empty
Then
1 2 3
66 Exit Sub
67 End If
68 If .Range("B3" ).Value = Empty Then 'New Entry
69 EntryRow = EntryDB.Range("A9999" ).End(xlUp).Row + 1 'First Avail Row
70 .Range("B2" ).Value = .Range("B4" ).Value 'Entry ID
71 EntryDB.Range("A" & EntryRow).Value = .Range("B2" ).Value
72 Else 'Existing Entry
73 EntryRow = .Range("B3" ).Value 'Entry Row (existing)
74 End If
75 For EntryCol = 2 To 7
76 EntryDB.Cells(EntryRow, EntryCol).Value = .Range(EntryDB.Cells(1, EntryCol).Value).Value
77 Next EntryCol
78 If .Range("L8" ).Value = Empty Then 'Not Clocked In
79 .Shapes("ClockInBtn" ).Visible = msoCTrue 'Show Clock In
80 .Shapes("ClockOutBtn" ).Visible = msoFalse 'Hide Clock Out
81 ElseIf .Range("L8" ).Value <> Empty And .Range("L10" ).Value = Empty Then
82 .Shapes("ClockInBtn" ).Visible = msoFalse 'Hide Clock In
83 .Shapes("ClockOutBtn" ).Visible = msoCTrue 'Show Clock Out
84 Else
85 .Shapes("ClockInBtn" ).Visible = msoFalse 'Hide Clock In
86 .Shapes("ClockOutBtn" ).Visible = msoFalse 'Hide Clock Out
87 End If
88 RefreshBoard
89 MsgBox "Time Entry Saved"
90 End With
91 End Sub
31 End Sub
32
33 Sub CalendarShow()
34 With ActiveSheet
35 Set SelCell = ActiveCell
36 'Check if active cell is a valid date
37 If IsDate(SelCell.Value) = True Then
38 Sheets("CalPopUp" ).Range("A1" ).Value = SelCell.Value
39 Else: 'If No Date or incorrect Date user current date
40 Sheets("CalPopUp" ).Range("A1" ).Value = "=Today()"
41 End If
42 'Clear all shapes to white (if calendar is visible)
43 If ActiveSheet.Shapes("Calendar" ).Visible = True Then
44 For DayNum = 1 To 42
45 DayName = DayNum & "Day"
46 With ActiveSheet.Shapes(DayName)
47 .Fill.ForeColor.RGB = RGB(255, 255, 255)
48 .TextFrame2.TextRange.Font.Bold = msoFalse
49 End With
50 Next DayNum
51 End If
52
53 Sheets("CalPopUp" ).Range("A3" ).Value = Month(Sheets("CalPopUp" ).Range("A1" ).Value) 'Set
Month
54 Sheets("CalPopUp" ).Range("A2" ).Value = Year(Sheets("CalPopUp" ).Range("A1" ).Value) 'Set Year
178 .Range("D1" ).Value = "=IF(C1<>" & Chr(34) & Chr(34) & ",C1+1,IF(WEEKDAY(DATE(CalYear,MATCH
($A$4,CalMonths,0),1))=3,DATE(CalYear,MATCH($A$4,CalMonths,0),1)," & Chr(34) & Chr(34) & "))"
179 .Range("E1" ).Value = "=IF(D1<>" & Chr(34) & Chr(34) & ",D1+1,IF(WEEKDAY(DATE(CalYear,MATCH
($A$4,CalMonths,0),1))=4,DATE(CalYear,MATCH($A$4,CalMonths,0),1)," & Chr(34) & Chr(34) & "))"
180 .Range("F1" ).Value = "=IF(E1<>" & Chr(34) & Chr(34) & ",E1+1,IF(WEEKDAY(DATE(CalYear,MATCH
($A$4,CalMonths,0),1))=5,DATE(CalYear,MATCH($A$4,CalMonths,0),1)," & Chr(34) & Chr(34) & "))"
181 .Range("G1" ).Value = "=IF(F1<>" & Chr(34) & Chr(34) & ",F1+1,IF(WEEKDAY(DATE(CalYear,MATCH
($A$4,CalMonths,0),1))=6,DATE(CalYear,MATCH($A$4,CalMonths,0),1)," & Chr(34) & Chr(34) & "))"
1 2
217 "3Day" , "14Day" , "7Day" , "4Day" , "2Day" , "5Day" , "8Day" , "10Day" , "6Day" , _
218 "13Day" , "11Day" , "9Day" , "12Day" , "15Day" , "17Day" , "20Day" , "21Day" , "18Day" _
220 "28Day" , "29Day" , "31Day" , "34Day" , "35Day" , "32Day" , "30Day" , "33Day" , "Sa" , _
221 "Fr" , "Th" , "We" , "Tu" , "Mo" , "Su" , "SetBtn" , "CalCol1" , "CalCol2" , "CalCol3" , _
226 "3Day" , "14Day" , "7Day" , "4Day" , "2Day" , "5Day" , "8Day" , "10Day" , "6Day" , _
227 "13Day" , "11Day" , "9Day" , "12Day" , "15Day" , "17Day" , "20Day" , "21Day" , "18Day" _
230 "Fr" , "Th" , "We" , "Tu" , "Mo" , "Su" , "SetBtn" , "CalCol1" , "CalCol2" , "CalCol3" , _
354 Else:
355 ActiveSheet.Shapes.Range(Array("Settings" , "CalCol1" , "CalCol2" , "CalCol3" , "CalCol4" ,
"CalCol5" , "CalCol6" , "CalCol7" , "CalCol8" , "CalCol9" )).Visible = True
356 End If
1
Unique, 11
UserPicture, 12
V
Value, 4, 5, 10-20
vbDirectory, 12
vbNo, 13
vbYesNo, 13
Visible, 4, 5, 10, 13-20
W
Width, 12
Worksheet, 16
Worksheet_Change, 5
Worksheet_SelectionChange, 4, 5
WorksheetFunction, 20
ws, 16
X
xlAscending, 11
xlFillDefault, 17, 18
xlFilterCopy, 11
xlMove, 16, 19
xlSheetHidden, 17
xlSortNormal, 11
xlSortOnValues, 11
xlUp, 11, 14
xlValues, 11-13
xlWhole, 11-13
Y
Year, 15, 17
Z
ZOrder, 16