16/09/2013, 08:17
|
| | Fecha de Ingreso: septiembre-2013 Ubicación: Huelva
Mensajes: 2
Antigüedad: 11 años, 2 meses Puntos: 0 | |
Respuesta: Programacion excel 2003 Buenas de nuevo,
Creo que ya lo he sacado, aunque como estoy empezando creo que el código podría quedar bastante más compacto. Os lo dejo para que me digáis posibles mejoras. Esta hecho para una matriz de 4x6, y conteniendo valores entre 1 y 6, los cuales no pueden estar repetidos en la misma columna. Para otro tamaño de matriz sólo habría que cambiar el valor límite de los contadores.
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim l As Integer
Dim x As Integer
Dim r As Integer
Dim s As Integer
Dim z As Integer
For l = 1 To 6
For k = 1 To 6
Cells(k + 5, l + 2).Select
ActiveSheet.Select
For j = 2 To 6
For i = 1 To 4
x = Cells(5, l + 2).Value
y = Cells(5 + k, 2).Value
h = Cells(i, j).Value
If h = x Then
For z = 1 To 4
m = Cells(z, j - 1).Value
If m = y Then
r = 1
s = s + r
Else: r = 0
End If
Next z
End If
r = 0
Next i
Next j
ActiveCell = s
s = 0
Next k
Next l
End Sub
Gracias de antemano. Un saludo, |