Ver Mensaje Individual
  #3 (permalink)  
Antiguo 16/09/2013, 08:17
tito_greven
 
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,