Error: Procedimiento demasiado largo Excel

Realice el siguiente código en excel

Sub Bisel_BotonHecho()
' FUTBOL
If ActiveSheet.Cells(8, 1).Value = "Futbol" Then
Sheets("Futbol").Range("D4").Value = Sheets("Futbol").Range("D4").Value + 1 ' Contador General Futbol
' Evaluación del Curso (Excelente, Bueno, Regular, Malo)
If ActiveSheet.Cells(3, 14).Value = "1" Then
Sheets("Futbol").Range("D7").Value = Sheets("Futbol").Range("D7").Value + 1
End If
If ActiveSheet.Cells(3, 14).Value = "2" Then
Sheets("Futbol").Range("D8").Value = Sheets("Futbol").Range("D8").Value + 1
End If
If ActiveSheet.Cells(3, 14).Value = "3" Then
Sheets("Futbol").Range("D9").Value = Sheets("Futbol").Range("D9").Value + 1
End If
If ActiveSheet.Cells(3, 14).Value = "4" Then
Sheets("Futbol").Range("D10").Value = Sheets("Futbol").Range("D10").Value + 1
End If
'Trato (Excelente, Bueno, Regular, Malo)
If ActiveSheet.Cells(4, 14).Value = "1" Then
Sheets("Futbol").Range("C16").Value = Sheets("Futbol").Range("C16").Value + 1
End If
If ActiveSheet.Cells(4, 14).Value = "2" Then
Sheets("Futbol").Range("C17").Value = Sheets("Futbol").Range("C17").Value + 1
End If
If ActiveSheet.Cells(4, 14).Value = "3" Then
Sheets("Futbol").Range("C18").Value = Sheets("Futbol").Range("C18").Value + 1
End If
If ActiveSheet.Cells(4, 14).Value = "4" Then
Sheets("Futbol").Range("C19").Value = Sheets("Futbol").Range("C19").Value + 1
End If
'Conocimiento (Excelente, Bueno, Regular, Malo)
If ActiveSheet.Cells(5, 14).Value = "1" Then
Sheets("Futbol").Range("D16").Value = Sheets("Futbol").Range("D16").Value + 1
End If
If ActiveSheet.Cells(5, 14).Value = "2" Then
Sheets("Futbol").Range("D17").Value = Sheets("Futbol").Range("D17").Value + 1
End If
If ActiveSheet.Cells(5, 14).Value = "3" Then
Sheets("Futbol").Range("D18").Value = Sheets("Futbol").Range("D18").Value + 1
End If
If ActiveSheet.Cells(5, 14).Value = "4" Then
Sheets("Futbol").Range("D19").Value = Sheets("Futbol").Range("D19").Value + 1
End If
'Experiencia (Excelente, Bueno, Regular, Malo)
If ActiveSheet.Cells(6, 14).Value = "1" Then
Sheets("Futbol").Range("E16").Value = Sheets("Futbol").Range("E16").Value + 1
End If
If ActiveSheet.Cells(6, 14).Value = "2" Then
Sheets("Futbol").Range("E17").Value = Sheets("Futbol").Range("E17").Value + 1
End If
If ActiveSheet.Cells(6, 14).Value = "3" Then
Sheets("Futbol").Range("E18").Value = Sheets("Futbol").Range("E18").Value + 1
End If
If ActiveSheet.Cells(6, 14).Value = "4" Then
Sheets("Futbol").Range("E19").Value = Sheets("Futbol").Range("E19").Value + 1
End If
'Inconveniente Si/No
If ActiveSheet.Cells(7, 14).Value = "1" Then
Sheets("Futbol").Range("C23").Value = Sheets("Futbol").Range("C23").Value + 1
End If
If ActiveSheet.Cells(7, 14).Value = "2" Then
Sheets("Futbol").Range("C24").Value = Sheets("Futbol").Range("C24").Value + 1
End If
'Resueltos Inconvenientes Si/No
If ActiveSheet.Cells(8, 14).Value = "1" Then
Sheets("Futbol").Range("E23").Value = Sheets("Futbol").Range("E23").Value + 1
End If
'Implementos (Excelente, Bueno, Regular, Malo)
If ActiveSheet.Cells(9, 14).Value = "1" Then
Sheets("Futbol").Range("C28").Value = Sheets("Futbol").Range("C28").Value + 1
End If
If ActiveSheet.Cells(9, 14).Value = "2" Then
Sheets("Futbol").Range("C29").Value = Sheets("Futbol").Range("C29").Value + 1
End If
If ActiveSheet.Cells(9, 14).Value = "3" Then
Sheets("Futbol").Range("C30").Value = Sheets("Futbol").Range("C30").Value + 1
End If
If ActiveSheet.Cells(9, 14).Value = "4" Then
Sheets("Futbol").Range("C31").Value = Sheets("Futbol").Range("C31").Value + 1
End If
'Escenarios (Excelente, Bueno, Regular, Malo)
If ActiveSheet.Cells(10, 14).Value = "1" Then
Sheets("Futbol").Range("D28").Value = Sheets("Futbol").Range("D28").Value + 1
End If
If ActiveSheet.Cells(10, 14).Value = "2" Then
Sheets("Futbol").Range("D29").Value = Sheets("Futbol").Range("D29").Value + 1
End If
If ActiveSheet.Cells(10, 14).Value = "3" Then
Sheets("Futbol").Range("D30").Value = Sheets("Futbol").Range("D30").Value + 1
End If
If ActiveSheet.Cells(10, 14).Value = "4" Then
Sheets("Futbol").Range("D31").Value = Sheets("Futbol").Range("D31").Value + 1
End If
'Convenios (Excelente, Bueno, Regular, Malo)
If ActiveSheet.Cells(11, 14).Value = "1" Then
Sheets("Futbol").Range("E28").Value = Sheets("Futbol").Range("E28").Value + 1
End If
If ActiveSheet.Cells(11, 14).Value = "2" Then
Sheets("Futbol").Range("E29").Value = Sheets("Futbol").Range("E29").Value + 1
End If
If ActiveSheet.Cells(11, 14).Value = "3" Then
Sheets("Futbol").Range("E30").Value = Sheets("Futbol").Range("E30").Value + 1
End If
If ActiveSheet.Cells(11, 14).Value = "4" Then
Sheets("Futbol").Range("E31").Value = Sheets("Futbol").Range("E31").Value + 1
End If
End If ' Fin If Futbol
'---------------------------------------------------------------------------------
' VOLEIBOL
If ActiveSheet.Cells(8, 1).Value = "Voleibol" Then
Sheets("Voleibol").Range("D4").Value = Sheets("Voleibol").Range("D4").Value + 1 ' Contador General Voleibol
' Evaluación del Curso (Excelente, Bueno, Regular, Malo)
If ActiveSheet.Cells(3, 14).Value = "1" Then
Sheets("Voleibol").Range("D7").Value = Sheets("Voleibol").Range("D7").Value + 1
End If
If ActiveSheet.Cells(3, 14).Value = "2" Then
Sheets("Voleibol").Range("D8").Value = Sheets("Voleibol").Range("D8").Value + 1
End If
If ActiveSheet.Cells(3, 14).Value = "3" Then
Sheets("Voleibol").Range("D9").Value = Sheets("Voleibol").Range("D9").Value + 1
End If
If ActiveSheet.Cells(3, 14).Value = "4"...

1 respuesta

Respuesta
1

Digamos que se nota..... ;)

Mira, te armé la idea y luego te programé solo para Voleibol para que tomes la idea y repitas en el resto de los deportes.

Todavía se puede reducir más pero mejor lo dejas separado x disciplina.

Tomá lápiz y papel y verificá las ref y los valores que toman las variables si te parece algo difícil de comprender.

Sub CONSULTA()
'x Elsamatilde
'según de qué hoja se trate se procede
Select Case ActiveSheet.Cells(8, 1).Value
Case Is = "FÚTBOL"
'líneas para Fútbol

Case Is = "VOLEIBOL"
Sheets("Voleibol").Range("D4").Value = Sheets("Voleibol").Range("D4").Value + 1 ' Contador General Voleibol
' Evaluación del Curso (Excelente, Bueno, Regular, Malo)
For i = 1 To 4
'la celda D depende del valor de i. Para D7 i=1, para D8 i=2 entonces es range("D6").Offset(0,i)
If ActiveSheet.Cells(3, 14).Value = i Then
Sheets("Voleibol").Range("D6").Offset(0, i).Value = Sheets("Voleibol").Range("D6").Offset(0, i).Value + 1
End If
Next i
'Trato (Excelente, Bueno, Regular, Malo)
'como aquí se repiten las opciones para filas 4,5 y 6, con celdas a partir de col C, D y E (o sea 3, 4 y 5) se hace otro bucle
col = 3
For x = 4 To 6
For i = 1 To 4
If ActiveSheet.Cells(x, 14).Value = i Then
Sheets("Voleibol").Cells(15, col).Offset(0, i).Value = Sheets("Voleibol").Cells(15, col).Offset(0, i).Value + 1
End If
Next i
'aumento en 1 la col porque ahora paso para col D, luego E
col = col + 1
Next x
'Inconveniente Si/No
If ActiveSheet.Cells(7, 14).Value = "1" Then
Sheets("Voleibol").Range("C23").Value = Sheets("Voleibol").Range("C23").Value + 1
ElseIf ActiveSheet.Cells(7, 14).Value = "2" Then
Sheets("Voleibol").Range("C24").Value = Sheets("Voleibol").Range("C24").Value + 1
End If
'Resueltos Inconvenientes Si/No
If ActiveSheet.Cells(8, 14).Value = "1" Then
Sheets("Voleibol").Range("E23").Value = Sheets("Voleibol").Range("E23").Value + 1
End If
'Implementos (Excelente, Bueno, Regular, Malo)
'como aquí se repiten las opciones para filas 9, 10 y 11, con celdas a partir de col C, D y E (o sea 3, 4 y 5) se hace otro bucle
col = 3
For x = 9 To 11
For i = 1 To 4
If ActiveSheet.Cells(x, 14).Value = i Then
Sheets("Voleibol").Cells(27, col).Offset(0, i).Value = Sheets("Voleibol").Cells(27, col).Offset(0, i).Value + 1
End If
Next i
'aumento en 1 la col porque ahora paso para col D, luego E
col = col + 1
Next x
' Fin If Voleibol

Case Is = "MICROFUTBOL"
'líneas para microfutbol

Case Is = "AJEDREZ"
'.....
End Select
End Sub

Preparalo y probalo, luego me comentas

PD) Todo los tipos de bucles en mis manuales de Macros ;)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas