A continuación, veremos un programa en Excel VBA que muestra una vista previa impresa de todos los partidos de fútbol posibles de una lista de equipos.

Situación:

Posibles partidos de fútbol en Excel VBA

1. Primero, declaramos un objeto Range y cuatro variables. Llamamos al objeto Range rng. Una variable String que llamamos matchname, y tres variables Integer que llamamos contador, i y j.

Dim rng As Range, matchname As String, counter As Integer, i As Integer, j As Integer

2. Inicializamos rng con los nombres de los equipos. Usamos CurrentRegion porque no conocemos los límites exactos del rango de antemano (queremos que este programa funcione para 3 equipos pero también para 12 equipos). Inicializamos el contador con valor 0.

Set rng = Range("A1").CurrentRegion
counter = 0

3. Escribimos todos los partidos de fútbol posibles en la columna C. Primero, vaciamos la columna C.

Worksheets(1).Columns(3) = ""

4. Comenzamos un bucle doble .

For i = 1 To rng.Count
    For j = i + 1 To rng.Count

5. Escribimos un nombre de coincidencia a la variable nombre de coincidencia.

matchname = rng.Cells(i).Value & " vs " & rng.Cells(j).Value

Por ejemplo, para i = 1 yj = 2, Excel VBA escribe el nombre de coincidencia Kickers vs Shooters. Para i = 1 y j = 3, Excel VBA escribe el nombre de coincidencia Kickers vs Little Giants, etc.

6. Escribimos el nombre de coincidencia en la columna C.

Cells(counter + 1, 3).Value = matchname

7. El contador realiza un seguimiento del número de nombres de coincidencia escritos en la columna C. Excel VBA incrementa el contador en 1 cada vez que escribe un nombre de coincidencia en la columna C. Para lograr esto, agregue la siguiente línea de código:

counter = counter + 1

8. No olvide cerrar los dos bucles.    

    Next j
Next i

9. Mostramos una vista previa impresa de todos los partidos de fútbol posibles.

ActiveSheet.Columns(3).PrintPreview

10. Pruebe el programa.

Parte del resultado:

Resultado posible de partidos de fútbol

Nota: la columna C se centra manualmente para obtener este resultado.

14/10 Completado! Más información sobre el objeto de rango>
Siguiente capítulo: Variables