├── Images
└── ReadMe
│ ├── excel.ribbon.gif
│ ├── header.png
│ ├── header.pptx
│ ├── ribbon.group.about.png
│ ├── ribbon.group.admin.png
│ ├── ribbon.group.dateoptions.png
│ ├── ribbon.group.dayoptions.png
│ ├── ribbon.group.help.png
│ ├── ribbon.group.insertdata.png
│ ├── ribbon.group.timeoptions.png
│ └── vba.ribbon.settings.png
├── LICENSE
├── README.md
├── VBA
├── Timesheet.xlsm
└── test
└── text.vb
/Images/ReadMe/excel.ribbon.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Excel-projects/Excel-Timesheet/6c740f59e20501a207b228edb0645230e3d09090/Images/ReadMe/excel.ribbon.gif
--------------------------------------------------------------------------------
/Images/ReadMe/header.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Excel-projects/Excel-Timesheet/6c740f59e20501a207b228edb0645230e3d09090/Images/ReadMe/header.png
--------------------------------------------------------------------------------
/Images/ReadMe/header.pptx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Excel-projects/Excel-Timesheet/6c740f59e20501a207b228edb0645230e3d09090/Images/ReadMe/header.pptx
--------------------------------------------------------------------------------
/Images/ReadMe/ribbon.group.about.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Excel-projects/Excel-Timesheet/6c740f59e20501a207b228edb0645230e3d09090/Images/ReadMe/ribbon.group.about.png
--------------------------------------------------------------------------------
/Images/ReadMe/ribbon.group.admin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Excel-projects/Excel-Timesheet/6c740f59e20501a207b228edb0645230e3d09090/Images/ReadMe/ribbon.group.admin.png
--------------------------------------------------------------------------------
/Images/ReadMe/ribbon.group.dateoptions.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Excel-projects/Excel-Timesheet/6c740f59e20501a207b228edb0645230e3d09090/Images/ReadMe/ribbon.group.dateoptions.png
--------------------------------------------------------------------------------
/Images/ReadMe/ribbon.group.dayoptions.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Excel-projects/Excel-Timesheet/6c740f59e20501a207b228edb0645230e3d09090/Images/ReadMe/ribbon.group.dayoptions.png
--------------------------------------------------------------------------------
/Images/ReadMe/ribbon.group.help.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Excel-projects/Excel-Timesheet/6c740f59e20501a207b228edb0645230e3d09090/Images/ReadMe/ribbon.group.help.png
--------------------------------------------------------------------------------
/Images/ReadMe/ribbon.group.insertdata.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Excel-projects/Excel-Timesheet/6c740f59e20501a207b228edb0645230e3d09090/Images/ReadMe/ribbon.group.insertdata.png
--------------------------------------------------------------------------------
/Images/ReadMe/ribbon.group.timeoptions.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Excel-projects/Excel-Timesheet/6c740f59e20501a207b228edb0645230e3d09090/Images/ReadMe/ribbon.group.timeoptions.png
--------------------------------------------------------------------------------
/Images/ReadMe/vba.ribbon.settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Excel-projects/Excel-Timesheet/6c740f59e20501a207b228edb0645230e3d09090/Images/ReadMe/vba.ribbon.settings.png
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2019 Anthony Duguid
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | This Add-In is used to produce a timesheet file with functionality to import your [Google Timeline](https://www.google.com/maps/timeline). The standard timesheet has options for start and end dates, day of week and default start, end and break times. The Google timeline options are start and end dates, UTC selection, daylight savings time parameters and title filter for timeline entries. There is also a right click shortcut to open your Google timeline to the date of the row that is currently selected. I used [Terence Eden's blog post](https://shkspr.mobi/blog/2015/09/get-your-google-location-history-the-hard-way-again/) as a reference to write the procedure for downloading the Google Timeline files. Code review suggestions have been applied from this [article](https://codereview.stackexchange.com/q/206017/158032).
4 |
5 |
6 | [](LICENSE "MIT License Copyright © Anthony Duguid")
7 | [](https://github.com/Excel-projects/Excel-Timesheet/releases)
8 | [](https://github.com/Excel-projects/Excel-Timesheet/commits/master)
9 | [](https://github.com/Excel-projects/Excel-Timesheet/issues)
10 |
11 |
12 | -----
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 | ## Table of Contents
21 | - Install
22 | - Dependencies
23 | - Glossary of Terms
24 | - Functionality
25 | - Insert Data
26 | - Date Options
27 | - Day Options
28 | - Time Options
29 | - Help
30 | - Admin
31 | - About
32 |
33 |
34 |
35 |
36 | ## Install
37 | Instructions for installation of VBA version
38 |
39 | ### VBA
40 | How to install the VBA version
41 | 1. Download the VBA Add-In file [](https://github.com/Excel-projects/Excel-Timesheet/raw/master/VBA/Timesheet.xlsm?raw=true "Download the VBA Add-In").
42 |
43 |
44 |
45 |
46 | ## Dependencies
47 | |Software |Dependency |Project |
48 | |:------------------------------------------|:--------------------------|:--------------------------|
49 | |[Microsoft Excel 2010 (or later)](https://www.microsoft.com/en-au/software-download/office)|Project|VBA|
50 | |[Visual Basic for Applications](https://msdn.microsoft.com/en-us/vba/vba-language-reference)|Code|VBA|
51 | |[Extensible Markup Language (XML)](https://www.rondebruin.nl/win/s2/win001.htm)|Ribbon|VBA, VSTO|
52 | |[ScreenToGif](http://www.screentogif.com/)|Read Me|VBA, VSTO|
53 | |[Snagit](http://discover.techsmith.com/snagit-non-brand-desktop/?gclid=CNzQiOTO09UCFVoFKgod9EIB3g)|Read Me|VBA, VSTO|
54 | |Badges ([Library](https://shields.io/), [Custom](https://rozaxe.github.io/factory/), [Star/Fork](http://githubbadges.com))|Read Me|VBA, VSTO|
55 |
56 |
57 |
58 |
59 | ## Glossary of Terms
60 |
61 | | Term | Meaning |
62 | |:--------------------------|:-----------------------------------------------------------------------------------------|
63 | | COM |Component Object Model (COM) is a binary-interface standard for software components introduced by Microsoft in 1993. It is used to enable inter-process communication and dynamic object creation in a large range of programming languages. COM is the basis for several other Microsoft technologies and frameworks, including OLE, OLE Automation, ActiveX, COM+, DCOM, the Windows shell, DirectX, UMDF and Windows Runtime. |
64 | | VBA |Visual Basic for Applications (VBA) is an implementation of Microsoft's event-driven programming language Visual Basic 6 and uses the Visual Basic Runtime Library. However, VBA code normally can only run within a host application, rather than as a standalone program. VBA can, however, control one application from another using OLE Automation. VBA can use, but not create, ActiveX/COM DLLs, and later versions add support for class modules.|
65 | | VSTO |Visual Studio Tools for Office (VSTO) is a set of development tools available in the form of a Visual Studio add-in (project templates) and a runtime that allows Microsoft Office 2003 and later versions of Office applications to host the .NET Framework Common Language Runtime (CLR) to expose their functionality via .NET.|
66 | | XML|Extensible Markup Language (XML) is a markup language that defines a set of rules for encoding documents in a format that is both human-readable and machine-readable.The design goals of XML emphasize simplicity, generality, and usability across the Internet. It is a textual data format with strong support via Unicode for different human languages. Although the design of XML focuses on documents, the language is widely used for the representation of arbitrary data structures such as those used in web services.|
67 | | KML|Keyhole Markup Language (KML) is an XML notation for expressing geographic annotation and visualization within Internet-based, two-dimensional maps and three-dimensional Earth browsers. KML was developed for use with Google Earth, which was originally named Keyhole Earth Viewer.|
68 |
69 |
70 |
71 |
72 |
73 | ## Functionality
74 | This Excel ribbon is inserted after the “Home” tab when Excel opens. Listed below is the detailed functionality of this application and its components.
75 |
76 |
77 |
78 |
79 | ### Insert Data (Group)
80 | Insert rows of data into the active table with the following controls.
81 |
82 |
83 |
84 |
85 |
86 | #### Add Days (Button)
87 | * Add days from the textbox values in the start and end dates in the "Date Options" group.
88 | * Optional filter for day of week in "Day Options" group.
89 |
90 | #### Add Timeline (Button)
91 | * Add timeline events filter from the start and end dates in the "Date Options" group.
92 | * Downloads the .kml files per day from Google Timeline
93 | * Imports each .kml file with optional filters for Title (using a delimited list in the settings) and day of week in "Day Options" group.
94 |
95 | #### UTC (Dropdown)
96 | * This is the timezone offset for the stored date & time values in your Google Timeline.
97 | * Uses a hidden sheet for the list of Timezones
98 |
99 | #### Apply DST (Toggle Button)
100 | * This will apply the daylight savings time to the Google Timeline import.
101 |
102 | #### Filter Title (Toggle Button)
103 | * This will apply the title filter from the settings to the Google Timeline import.
104 |
105 |
106 |
107 | ### Date Options (Group)
108 | These date options will filter the selected table.
109 |
110 |
111 |
112 |
113 |
114 | #### Start Date (Textbox)
115 | * The value that is used to filter inserts.
116 |
117 | #### End Date (Textbox)
118 | * The value that is used to filter inserts.
119 |
120 | #### Column (Combobox)
121 | * This refers to the column name that date values get added to.
122 |
123 | #### Calendar (Buttons)
124 | * These buttons allow the user to select a date from a calendar.
125 | * Note: The calendar has a reference to Common Controls
126 |
127 | #### Refresh (Button)
128 | * This button will refresh the list of column names in the combobox.
129 |
130 | #### Current Week (Button)
131 | * This button will set the start and end dates in the textboxes to the current week.
132 |
133 | #### Next 7 Days (Button)
134 | * This button will set the start and end dates in the textboxes to the next 7 days using the maximum date from the selected table.
135 |
136 | #### Filter Table (Button)
137 | * This button will filter the selected table with the start and end dates from the textboxes.
138 |
139 |
140 |
141 | ### Day Options (Group)
142 |
143 |
144 |
145 |
146 |
147 |
148 | #### Sun, Mon, Tue, Wed, Thu, Fri, Sat (Checkboxes)
149 | * These checkboxes allow the user to limit the records inserted into the table by selected days
150 |
151 |
152 |
153 | ### Time Options (Group)
154 |
155 |
156 |
157 |
158 |
159 |
160 | #### Start Time (Combobox)
161 | * The column name of the start time
162 |
163 | #### End Time (Combobox)
164 | * The column name of the end time
165 |
166 | #### Break Time (Combobox)
167 | * The column name of the break time
168 |
169 | #### Refresh (Buttons)
170 | * Refreshes the list of column name from the selected table
171 |
172 | #### Start Time (Textbox)
173 | * The default value for the start time when inserted into the selected table
174 |
175 | #### End Time (Textbox)
176 | * The default value for the end time when inserted into the selected table
177 |
178 | #### Break Time (Textbox)
179 | * The default value for the break time when inserted into the selected table
180 |
181 |
182 |
183 | ### Help (Group)
184 |
185 |
186 |
187 |
188 |
189 |
190 |
191 | #### How To… (Button)
192 | * Opens a webpage of the read me documentation
193 |
194 | #### Report Issue (Button)
195 | * Opens a page to create a new issue for the product
196 |
197 | #### Settings (Button)
198 | * Settings represent user preferences or valuable information the application needs to use.
199 | * This opens the settings form. The settings are stored as custom properties and can be changed by double-clicking the item or using the update button.
200 |
201 |
202 | VBA
203 |
204 |
205 |
206 |
207 | - VBA Settings
208 | - To add a new setting
209 | ```vbnet
210 | ThisWorkbook.CustomDocumentProperties.Add _
211 | Name:="App_ReleaseDate" _
212 | , LinkToContent:=False _
213 | , Type:=msoPropertyTypeDate _
214 | , Value:="31-Jul-2017 1:05pm"
215 | ```
216 | - To update a setting
217 | ```vbnet
218 | ThisWorkbook.CustomDocumentProperties.Item("App_ReleaseDate").Value = "31-Jul-2017 1:05pm"
219 | ```
220 | - To delete a setting
221 | ```vbnet
222 | ThisWorkbook.CustomDocumentProperties.Item("App_ReleaseDate").Delete
223 | ```
224 |
225 |
226 | ### Admin (Group)
227 | This group's visibility is toggled with the F12 key
228 |
229 |
230 |
231 |
232 |
233 |
234 | #### View Errors (Toggle Button)
235 | * View a list of errors in a hidden sheet
236 |
237 | #### Visual Basic (Button)
238 | * Opens the Visual Basic editor
239 |
240 | #### Export Code (Button)
241 | * Export the VBA and XML code for this file to the current directory
242 |
243 |
244 |
245 | ### About (Group)
246 |
247 |
248 |
249 |
250 |
251 |
252 |
253 | #### Add-in Name (Label)
254 | * The application name with the version
255 |
256 |
257 | #### Release Date (Label)
258 | * The release date of the application
259 |
260 |
261 | #### Copyright (Label)
262 | * The author’s name
263 |
--------------------------------------------------------------------------------
/VBA/Timesheet.xlsm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Excel-projects/Excel-Timesheet/6c740f59e20501a207b228edb0645230e3d09090/VBA/Timesheet.xlsm
--------------------------------------------------------------------------------
/VBA/test:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/text.vb:
--------------------------------------------------------------------------------
1 |
2 | this is just for searches for VB code
3 |
--------------------------------------------------------------------------------