Hi,
This is probably my most difficult section for the current workbook that I'm producing.
To set the scene, I'm a teacher and I am creating a register and markbook in excel. The reason being is that I'm aiming to be able to actually use the data far more than if it was written down in on paper.
However, I face a major hurdle. The register is taken during every lesson and I personally like to undertake this process at the very beginning of the lesson. The process needs to be very quick and efficient so that the lesson can get underway as soon as possible.
At the moment I work with three possible options for a pupil - ontime, late or absent. However, the hope is that this spreadsheet may get adopted by other members of staff and they may want to tailor the options to meet their requirements.
I have tried simply copying and pasting from a key of symbols to record the info, but this proved too fidly and time consuming.
Validation also turned out to be too slow and the inability to display the actually symbols in the drop down list made it next too useless.
I have tried out creating macros and assigning them to buttons and this has proved out to be the most successful so far.
However, I have seen (and downloaded) a spreadsheet that allows a simple click to input a tick into a column. It was very quick and worked well. I was wondering if the code could perhaps be adapted in some way to meet the results I want.
Can the number of clicks determine the symbol i.e. it sort of scrolls through the possible options with a left mouse click and a double click moves it to the next cell down?
Anyway, here's the code I downloaded -
Code written by Nick Hodge
15/11/04
Contained in this worksheet's code module
It detects a click in columns D or E and then inserts a tick mark. It then moves to column G in the same row. Clicking on a tick, removes it and moves you to column G
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim iOffset As Integer
On Error GoTo err_handler
Application.EnableEvents = False
If Not Application.Intersect(Target, Columns("D:E")) Is Nothing Then
If Target.Column = 4 Then
iOffset = 3
Else
iOffset = 2
End If
If IsEmpty(Target.Value) Then
With Target
.Font.Name = "Wingdings"
.Value = Chr(252)
End With
Target.Offset(0, iOffset).Select
Else
Target.Value = ""
Target.Offset(0, iOffset).Select
End If
End If
err_handler:
Application.EnableEvents = True
End Sub
Any help would be great and I know some of you enjoy a challenge!
Thanks,
Mark.
Bookmarks