Los profesores siempre tienen toneladas de tareas que completar. Tienen que preparar notas para la clase de mañana, realizar un seguimiento del rendimiento de los estudiantes, preparar informes para la alta dirección y mucho más. Hagamos que la entrada de la marca sea una tarea fácil para ellos.
Descargar Ahora
Si quieres starPara utilizar el software lo antes posible, puede:
De lo contrario, si desea hacer bricolaje, puede leer el contenido a continuación.
Preparemos la GUI
Como se muestra en estas imágenes, prepare la herramienta con las hojas necesarias.
| Nombre de hoja | Descripción |
| Entrada | Esta es la GUI para la entrada de marcas. |
| Database | Esta hoja actúa como base de datos y contiene las calificaciones de los estudiantes. |
| Lista | Esta hoja tiene datos que se utilizarán para crear menús desplegables. |
| Estudiantes | Esta hoja son los mapas de varios estudiantes a sus respectivas clases. |
Desde la ventana del proyecto VBA, cambie el nombre de las hojas como se muestra aquí.
Hagámoslo funcional
Copie la macro en un nuevo módulo y adjunte macros a sus respectivos botones.
| Macro | Adjuntar al botón | Descripción |
| Clase_desplegable | – | Esta macro crea el menú desplegable para "Clase" |
| Sección_desplegable | – | Esta macro crea el menú desplegable de "Sección" |
| Asunto_desplegable | – | Esta macro crea el menú desplegable para "Asunto" |
| Mostrar lista | Mostrar lista | Esta macro muestra a los estudiantes de la clase y sección seleccionadas |
| Añadir_a_base_de_datos | Enviar Formulario | Esta macro carga marca las entradas en la hoja de la base de datos. |
Sub Class_dropdown()
Dim lr As Long
Dim r As Long
lr = lst.Range("A" & Rows.Count).End(xlUp).Row
Dim prodlist As String
For r = 2 To lr
If prodlist = "" Then
prodlist = lst.Range("A" & r).Value
Else
prodlist = prodlist & "," & lst.Range("A" & r).Value
End If
Next r
With entry.Range("C2:D2").Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=prodlist
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End Sub
Sub Section_dropdown()
Dim lr As Long
Dim r As Long
lr = lst.Range("B" & Rows.Count).End(xlUp).Row
Dim prodlist As String
For r = 2 To lr
If prodlist = "" Then
prodlist = lst.Range("B" & r).Value
Else
prodlist = prodlist & "," & lst.Range("B" & r).Value
End If
Next r
With entry.Range("G2:H2").Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=prodlist
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End Sub
Sub Subject_dropdown()
Dim lr As Long
Dim r As Long
lr = lst.Range("C" & Rows.Count).End(xlUp).Row
Dim prodlist As String
For r = 2 To lr
If prodlist = "" Then
prodlist = lst.Range("C" & r).Value
Else
prodlist = prodlist & "," & lst.Range("C" & r).Value
End If
Next r
With entry.Range("K2:O2").Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=prodlist
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End Sub
Sub Show_List()
Dim r As Long
Dim lr As Long
Dim e As Long
e = 5
lr = std.Range("A" & Rows.Count).End(xlUp).Row
For r = 2 To lr
If std.Range("A" & r).Value = entry.Range("C2").Value And std.Range("B" & r).Value = entry.Range("G2").Value Then
e = e + 1
entry.Range("B" & e).Value = std.Range("C" & r).Value
entry.Range("C" & e).Value = std.Range("D" & r).Value
End If
Next r
End Sub
Sub Add_To_Database()
Dim r As Long
Dim lr As Long
Dim e As Long
e = 5
lr = entry.Range("B" & Rows.Count).End(xlUp).Row
For r = 6 To lr
Dim lrind As Long
lrind = db.Range("B" & Rows.Count).End(xlUp).Row + 1
db.Range("A" & lrind).Value = entry.Range("C2").Value
db.Range("B" & lrind).Value = entry.Range("G2").Value
db.Range("C" & lrind).Value = entry.Range("K2").Value
db.Range("D" & lrind).Value = entry.Range("C" & r).Value
db.Range("E" & lrind).Value = entry.Range("K" & r).Value
Next r
End Sub
Retocarlo
Este script le permite crear un sistema de entrada de marcas muy básico. Sin embargo, puede modificarlo y crear informes analíticos utilizando datos de la hoja "Base de datos". Es una buena práctica crear una copia de seguridad de la hoja de la base de datos. Esto le ayudará a recuperar un xlsx corrupto hoja.
Introducción del autor:
Nick Vipond es un experto en recuperación de datos en DataNumen, Inc., que es el líder mundial en tecnologías de recuperación de datos, incluyendo palabra corrupta y productos de software de recuperación de Outlook. Para más información visite www.datanumen.com.



