CALENDARIO DE FUTBOL

El ejemplo, consta de 2 hojas: Principal y Calendario. Principal muestra la clasificación de los equipos con los datos ya introducidos, ordenados primero por puntos y luego por goles a favor y en contra.

Mediante el botón VER JORNADAS, puedes leer y/o escribir datos en el calendario, por medio de los cuadros de texto del formulario. Para poder acceder a la hoja Calendario (actualmente oculta), debes seleccionar la hoja 3 (desde el Editor VBA) y ajustar la propiedad visible de la misma como -1 (xlSeetVisible). Hecho esto; para cambiar de una hoja a la otra, basta con Control + AvPág o Control + RePág .


La hoja principal (imagen de arriba) tiene restringido el acceso a sus celdas, mediante la propiedad ScrollArea = $T$30. Puedes modificar este ajuste en Programador > Controles > Propiedades. Borrando el valor puedes acceder a cualquier celda, por ejemplo para visualizar/estudiar las fórmulas. Los nombres definidos con los que trabajan las fórmulas, los puedes ver en; Fórmulas > Nombres definidos > Administrador de nombres.

Utilizo el recurso Inmovilizar paneles (T39 > Vista > Ventana > Inmovilizar paneles...), para evitar el desplazamiento de la zona visible de la hoja. Para llevar a cabo esto, reduces el zoom de la hoja y una vez inmovilizada lo vuelves a ajustar al 100%.



Proceso de construcción.

Hoja Calendario (imagen de la derecha).

Debes entrar los datos: Equipos, fechas, etc. según detalles en la imagen y el calendario en vigor. Los resultados pueden ser entrados directamente o mediante el formulario de introducción de datos (recomendado).

Nombres definidos:
  1. actual =Calendario!$G$1
  2. tempo =Calendario!$F$1
  3. eLoc =Calendario!$A$2:$A$455
  4. eVisit =Calendario!$C$2:$C$455
  5. golesLoc =Calendario!$B$2:$B$455
  6. golesVisit =Calendario!$D$2:$D$455
En el Formulario de introducción de datos (imagen de la derecha), puedes navegar por las diferentes jornadas, mediante el Botón de número. Con el botón FIJAR DATOS se introducen los resultados en la hoja calendario. Una vez los datos fijados, no son modificables desde el formulario. El botón SALIR cierra el Formulario.


Código VBA del Formulario.

Private Sub BotonFijarDatos_Click()
Dim fila%, n%
fila = Me.SpinButton1.Value * 12 - 11
For n = 1 To 10
Sheets("Calendario").Cells(fila + n, 2).Value = _
UserForm1.Controls("TextBoxLocal" & n).Value
UserForm1.Controls("TextBoxLocal" & n).Enabled = False
Sheets("Calendario").Cells(fila + n, 4).Value = _
UserForm1.Controls("TextBoxVisit" & n).Value
UserForm1.Controls("TextBoxVisit" & n).Enabled = False
Next n
Ordenar
End Sub

Private Sub BotonSalir_Click()
Unload UserForm1
End Sub

Private Sub SpinButton1_Change()
UserForm1.TextBoxJornada.Value = UserForm1.SpinButton1.Value
Select Case UserForm1.SpinButton1.Value
Case 1
Me.LabelAnt.Caption = ""
Me.LabelSig.Caption = "Sig."
Case 38
Me.LabelAnt.Caption = "Ant."
Me.LabelSig.Caption = ""
Case Else
Me.LabelAnt.Caption = "Ant."
Me.LabelSig.Caption = "Sig."
End Select
NombresResultados
End Sub

Private Sub TextBoxJornada_Change()
Me.SpinButton1.Value = Me.TextBoxJornada.Value
End Sub

Private Sub UserForm_Initialize()
' Me.TextBoxJornada.Value = 1
Me.LabelTemporada.Caption = Range("Tempo").Value
Me.SpinButton1.Value = Range("actual").Value - 1 * (Range("actual").Value = 0)
NombresResultados
End Sub

Private Sub NombresResultados()
Dim fila%, n%
fila = Me.SpinButton1.Value * 12 - 11
Me.LabelFecha.Caption = "Fecha: " & Sheets("Calendario").Cells(fila, 3).Value
For n = 1 To 10
UserForm1.Controls("LabelLocal" & n).Caption = _
Sheets("Calendario").Cells(fila + n, 1).Value
UserForm1.Controls("LabelVisit" & n).Caption = _
Sheets("Calendario").Cells(fila + n, 3).Value
UserForm1.Controls("TextBoxLocal" & n).Value = _
Sheets("Calendario").Cells(fila + n, 2).Value If UserForm1.Controls("TextBoxLocal" & n).Value <> _
"" Then UserForm1.Controls("TextBoxLocal" & n). _
Enabled = False Else UserForm1.Controls("TextBoxLocal" _
& n).Enabled = True
UserForm1.Controls("TextBoxVisit" & n).Value = _
Sheets("Calendario").Cells(fila + n, 4).Value
If UserForm1.Controls("TextBoxVisit" & n).Value <> "" _
Then UserForm1.Controls("TextBoxVisit" & n). _
Enabled = False Else UserForm1.Controls("TextBoxVisit" & n).Enabled = True
Next n
End Sub

Private Sub Ordenar()
ActiveWorkbook.Worksheets("Principal").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Principal").Sort.SortFields.Add Key:=Range( _
"K6:K25"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
xlSortNormal
ActiveWorkbook.Worksheets("Principal").Sort.SortFields.Add Key:=Range( _
"L6:L25"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("Principal").Sort
.SetRange Range("D5:L25")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub



Fórmulas en la hoja Principal.

Es preferible estudiar los detalles de las fórmulas en el propio ejemplo descargable, donde es mas fácil relacionar ubicación y funcionamiento de las mismas. La columna L (oculta) calcula la diferencia de goles a favor y goles en contra.


Inicio de página.