Hi Chad,
1. I am teaching an Introduction to Anthropology course with 4 sections, with each section having upto 50 students. My midterm exams and final exams usually have 120 items (see attached MsWord bubble sheet). After the exams, answer sheets are scanned according to the ORDER they are submitted by the students, which may not be in alphabetical order. My scanner generates a filename sequentially, e.g., Section1_01, Section1_02, etc. Since FormScanner does not recognize handwriting, the only identifier to whom the test score belongs is the ID number.
I made changes to the VB Macro Script of the latest ProcessBubbles 2.1 to meet my need:
1. I deleted “E” and “Others” in the “Answer Distribution” section because my answer sheet only has A, B, C, D choices
2. I added Sheet1.Cells(1, 1) = “IMAGE NAME” to serve as heading for column 1
3. To generate Q1 to Q120 labels, I changed the value from 100 to 120 in the following statement:
For i=1 To 120
Sheet1.Cells(1, i + 3) = "Q" & i
4. I inserted a statement:
For d=1 To 10
Sheet1.Cells(1, d + 123) = “ID” & d to generate ID1...ID10 labels for the ten-digit ID number used in my university.
5. I recorded a macro concatenating the value from ID1…ID10 and put the combined value in cell B3 all the way to B195. However, this macro is only good if I always have 195 items.
********************************************
Sub IDCapture()
'
' IDCapture Macro
' To combine ID numbers from D1 to D10 into one
'
' Keyboard Shortcut: Ctrl+d
'
ActiveCell.FormulaR1C1 = _
"=RC[122]&RC[123]&RC[124]&RC[125]&RC[126]&RC[127]&RC[128]&RC[129]&RC[130]&RC[131]"
Range("B3").Select
Selection.Copy
Range("B4:B195").Select
ActiveSheet.Paste
Sheets("Sheet2").Select
Range("C3").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=Sheet1!RC[-1]"
Range("C3").Select
Selection.Copy
Range("C4:C195").Select
ActiveSheet.Paste
Application.CutCopyMode = False
End Sub
************************************************
Enhancement Request:
1. Please change my Macro into a conditional statement that will concatenate ID numbers (ID1…ID10) and put the result in cell B3 up to the last item.
2. I want the content of IMAGE NAME, ID, and SCORE in Sheet1 to be automatically copied in Sheet2.
3. Since answer sheets are scanned according to the order they are submitted by the students, in Sheet2 I would like to sort the Test ID in Ascending Order by Section (the Image Name will help ensure that a group scores still belong to the same section) and also Sort the ID from my class roll (accompanied by the student name) in ascending order so I could easily put them side by side and match them.
4. After being sure to whom the scores belong, I could re-sort alphabetically the column of student last name by section.