Unificar
Publicado por magartre (5 intervenciones) el 11/08/2008 17:14:32
Hola a todos, tengo el siguiente problema ¿como podría unificar esto?
Private Sub Ctl1_Exit(Cancel As Integer)
If (Ctl1) = "X" Then
Me.p1 = 10
ElseIf (Ctl1) = "M" Then
Me.p1 = 0
ElseIf (Ctl1) = "1" Then
Me.p1 = 1
ElseIf (Ctl1) = "2" Then
Me.p1 = 2
ElseIf (Ctl1) = "3" Then
Me.p1 = 3
ElseIf (Ctl1) = "4" Then
Me.p1 = 4
ElseIf (Ctl1) = "5" Then
Me.p1 = 5
ElseIf (Ctl1) = "6" Then
Me.p1 = 6
ElseIf (Ctl1) = "7" Then
Me.p1 = 7
ElseIf (Ctl1) = "8" Then
Me.p1 = 8
ElseIf (Ctl1) = "9" Then
Me.p1 = 9
ElseIf (Ctl1) = "10" Then
Me.p1 = 10
ElseIf (Ctl1) > 10 Then
MsgBox "El valor introducido no puede ser superior a 10", vbCritical, "ERROR"
Cancel = True
Ctl1 = ""
Ctl1.SetFocus
End If
End Sub
Private Sub Ctl2_Exit(Cancel As Integer)
If (Ctl2) = "X" Then
Me.p2 = 10
ElseIf (Ctl2) = "M" Then
Me.p2 = 0
ElseIf (Ctl2) = "1" Then
Me.p2 = 1
ElseIf (Ctl2) = "2" Then
Me.p2 = 2
ElseIf (Ctl2) = "3" Then
Me.p2 = 3
ElseIf (Ctl2) = "4" Then
Me.p2 = 4
ElseIf (Ctl2) = "5" Then
Me.p2 = 5
ElseIf (Ctl2) = "6" Then
Me.p2 = 6
ElseIf (Ctl2) = "7" Then
Me.p2 = 7
ElseIf (Ctl2) = "8" Then
Me.p2 = 8
ElseIf (Ctl2) = "9" Then
Me.p2 = 9
ElseIf (Ctl2) = "10" Then
Me.p2 = 10
ElseIf (Ctl2) > 10 Then
MsgBox "El valor introducido no puede ser superior a 10", vbCritical, "ERROR"
Cancel = True
Ctl2 = ""
Ctl2.SetFocus
End If
End Sub
Private Sub Ctl3_Exit(Cancel As Integer)
If (Ctl3) = "X" Then
Me.p3 = 10
ElseIf (Ctl3) = "M" Then
Me.p3 = 0
ElseIf (Ctl3) = "1" Then
Me.p3 = 1
ElseIf (Ctl3) = "2" Then
Me.p3 = 2
ElseIf (Ctl3) = "3" Then
Me.p3 = 3
ElseIf (Ctl3) = "4" Then
Me.p3 = 4
ElseIf (Ctl3) = "5" Then
Me.p3 = 5
ElseIf (Ctl3) = "6" Then
Me.p3 = 6
ElseIf (Ctl3) = "7" Then
Me.p3 = 7
ElseIf (Ctl3) = "8" Then
Me.p3 = 8
ElseIf (Ctl3) = "9" Then
Me.p3 = 9
ElseIf (Ctl3) = "10" Then
Me.p3 = 10
ElseIf (Ctl3) > 10 Then
MsgBox "El valor introducido no puede ser superior a 10", vbCritical, "ERROR"
Cancel = True
Ctl3 = ""
Ctl3.SetFocus
End If
End Sub
Private Sub Ctl4_Exit(Cancel As Integer)
If (Ctl4) = "X" Then
Me.p4 = 10
ElseIf (Ctl4) = "M" Then
Me.p4 = 0
ElseIf (Ctl4) = "1" Then
Me.p4 = 1
ElseIf (Ctl4) = "2" Then
Me.p4 = 2
ElseIf (Ctl4) = "3" Then
Me.p4 = 3
ElseIf (Ctl4) = "4" Then
Me.p4 = 4
ElseIf (Ctl4) = "5" Then
Me.p4 = 5
ElseIf (Ctl4) = "6" Then
Me.p4 = 6
ElseIf (Ctl4) = "7" Then
Me.p4 = 7
ElseIf (Ctl4) = "8" Then
Me.p4 = 8
ElseIf (Ctl4) = "9" Then
Me.p4 = 9
ElseIf (Ctl4) = "10" Then
Me.p4 = 10
ElseIf (Ctl4) > 10 Then
MsgBox "El valor introducido no puede ser superior a 10", vbCritical, "ERROR"
Cancel = True
Ctl4 = ""
Ctl4.SetFocus
End If
End Sub
Como podeis ver se trata de una serie de campos en los cuales se puede poner una puntuación que va de 0 a 10 ?como podría realizar una función que repitiera para no tener que hacer esto en 30 campos?.
Hay que tener en cuenta que estos campos se suman de tres en tres y luego el total de los parciales.
Gracias a tod@s y un saludo
Private Sub Ctl1_Exit(Cancel As Integer)
If (Ctl1) = "X" Then
Me.p1 = 10
ElseIf (Ctl1) = "M" Then
Me.p1 = 0
ElseIf (Ctl1) = "1" Then
Me.p1 = 1
ElseIf (Ctl1) = "2" Then
Me.p1 = 2
ElseIf (Ctl1) = "3" Then
Me.p1 = 3
ElseIf (Ctl1) = "4" Then
Me.p1 = 4
ElseIf (Ctl1) = "5" Then
Me.p1 = 5
ElseIf (Ctl1) = "6" Then
Me.p1 = 6
ElseIf (Ctl1) = "7" Then
Me.p1 = 7
ElseIf (Ctl1) = "8" Then
Me.p1 = 8
ElseIf (Ctl1) = "9" Then
Me.p1 = 9
ElseIf (Ctl1) = "10" Then
Me.p1 = 10
ElseIf (Ctl1) > 10 Then
MsgBox "El valor introducido no puede ser superior a 10", vbCritical, "ERROR"
Cancel = True
Ctl1 = ""
Ctl1.SetFocus
End If
End Sub
Private Sub Ctl2_Exit(Cancel As Integer)
If (Ctl2) = "X" Then
Me.p2 = 10
ElseIf (Ctl2) = "M" Then
Me.p2 = 0
ElseIf (Ctl2) = "1" Then
Me.p2 = 1
ElseIf (Ctl2) = "2" Then
Me.p2 = 2
ElseIf (Ctl2) = "3" Then
Me.p2 = 3
ElseIf (Ctl2) = "4" Then
Me.p2 = 4
ElseIf (Ctl2) = "5" Then
Me.p2 = 5
ElseIf (Ctl2) = "6" Then
Me.p2 = 6
ElseIf (Ctl2) = "7" Then
Me.p2 = 7
ElseIf (Ctl2) = "8" Then
Me.p2 = 8
ElseIf (Ctl2) = "9" Then
Me.p2 = 9
ElseIf (Ctl2) = "10" Then
Me.p2 = 10
ElseIf (Ctl2) > 10 Then
MsgBox "El valor introducido no puede ser superior a 10", vbCritical, "ERROR"
Cancel = True
Ctl2 = ""
Ctl2.SetFocus
End If
End Sub
Private Sub Ctl3_Exit(Cancel As Integer)
If (Ctl3) = "X" Then
Me.p3 = 10
ElseIf (Ctl3) = "M" Then
Me.p3 = 0
ElseIf (Ctl3) = "1" Then
Me.p3 = 1
ElseIf (Ctl3) = "2" Then
Me.p3 = 2
ElseIf (Ctl3) = "3" Then
Me.p3 = 3
ElseIf (Ctl3) = "4" Then
Me.p3 = 4
ElseIf (Ctl3) = "5" Then
Me.p3 = 5
ElseIf (Ctl3) = "6" Then
Me.p3 = 6
ElseIf (Ctl3) = "7" Then
Me.p3 = 7
ElseIf (Ctl3) = "8" Then
Me.p3 = 8
ElseIf (Ctl3) = "9" Then
Me.p3 = 9
ElseIf (Ctl3) = "10" Then
Me.p3 = 10
ElseIf (Ctl3) > 10 Then
MsgBox "El valor introducido no puede ser superior a 10", vbCritical, "ERROR"
Cancel = True
Ctl3 = ""
Ctl3.SetFocus
End If
End Sub
Private Sub Ctl4_Exit(Cancel As Integer)
If (Ctl4) = "X" Then
Me.p4 = 10
ElseIf (Ctl4) = "M" Then
Me.p4 = 0
ElseIf (Ctl4) = "1" Then
Me.p4 = 1
ElseIf (Ctl4) = "2" Then
Me.p4 = 2
ElseIf (Ctl4) = "3" Then
Me.p4 = 3
ElseIf (Ctl4) = "4" Then
Me.p4 = 4
ElseIf (Ctl4) = "5" Then
Me.p4 = 5
ElseIf (Ctl4) = "6" Then
Me.p4 = 6
ElseIf (Ctl4) = "7" Then
Me.p4 = 7
ElseIf (Ctl4) = "8" Then
Me.p4 = 8
ElseIf (Ctl4) = "9" Then
Me.p4 = 9
ElseIf (Ctl4) = "10" Then
Me.p4 = 10
ElseIf (Ctl4) > 10 Then
MsgBox "El valor introducido no puede ser superior a 10", vbCritical, "ERROR"
Cancel = True
Ctl4 = ""
Ctl4.SetFocus
End If
End Sub
Como podeis ver se trata de una serie de campos en los cuales se puede poner una puntuación que va de 0 a 10 ?como podría realizar una función que repitiera para no tener que hacer esto en 30 campos?.
Hay que tener en cuenta que estos campos se suman de tres en tres y luego el total de los parciales.
Gracias a tod@s y un saludo
Valora esta pregunta


0