buenas tardes jovenes tengo un problemita con una macho que estoy ejecutando y me da un error '1004' en tiempo de ejecucion, me pueden decir por favor como lo soluciono, le explico que esta macro es para buscar las diferentes combinaciones exixtentes de 6 codigos en un rango del 1 al 38.
este es el codigo que estoy utilizando lo que esta en negrita es en donde me esta dando el error.
espero me puedan ayudar.
Gracias
Private Sub CommandButton1_Click()
Dim nn As Long, mm As Integer, rElem As Long, kk As Long, r_Comb As Long
Dim myMat(), Elem, piv() As Long
nn = Cells(Rows.Count, "B").End(xlUp).Row
If WorksheetFunction.CountA([b:b]) <> nn Then
MsgBox "La columna B no puede tener celdas vacías."
Exit Sub
End If
If nn = 1 Then
MsgBox "Introduzca los elementos a combinar" & Chr(10) & "en la columna B."
Exit Sub
End If
If [c2] <= 0 Or (Int([c2]) <> [c2]) Then
[c2].Select
MsgBox "Introduzca un Nº válido de elementos en cada combinación."
Exit Sub
End If
nn = nn - 1: mm = [c2]
If mm > nn Then
[c2].Select
MsgBox "El Nº de elementos en cada combinación no puede ser" & _
Chr(10) & "mayor que el Nº de elementos totales."
Exit Sub
End If
[c4].Formula = "= COMBIN( COUNTA(b: - 1, c2 )"
If [c4] > Rows.Count - 1 Then
MsgBox "El Nº de combinaciones es mayor que el Nº de filas disponibles"
buenas tardes jovenes tengo un problemita con una macho que estoy ejecutando y me da un error '1004' en tiempo de ejecucion, me pueden decir por favor como lo soluciono, le explico que esta macro es para buscar las diferentes combinaciones exixtentes de 6 codigos en un rango del 1 al 38.
este es el codigo que estoy utilizando lo que esta en negrita es en donde me esta dando el error.
espero me puedan ayudar.
Gracias
Private Sub CommandButton1_Click()
Dim nn As Long, mm As Integer, rElem As Long, kk As Long, r_Comb As Long
Dim myMat(), Elem, piv() As Long
nn = Cells(Rows.Count, "B").End(xlUp).Row
If WorksheetFunction.CountA([b:b]) <> nn Then
MsgBox "La columna B no puede tener celdas vacías."
Exit Sub
End If
If nn = 1 Then
MsgBox "Introduzca los elementos a combinar" & Chr(10) & "en la columna B."
Exit Sub
End If
If [c2] <= 0 Or (Int([c2]) <> [c2]) Then
[c2].Select
MsgBox "Introduzca un Nº válido de elementos en cada combinación."
Exit Sub
End If
nn = nn - 1: mm = [c2]
If mm > nn Then
[c2].Select
MsgBox "El Nº de elementos en cada combinación no puede ser" & _
Chr(10) & "mayor que el Nº de elementos totales."
Exit Sub
End If
[c4].Formula = "= COMBIN( COUNTA(b:
- 1, c2 )"
If [c4] > Rows.Count - 1 Then
MsgBox "El Nº de combinaciones es mayor que el Nº de filas disponibles"
Exit Sub
End If
Application.ScreenUpdating = False
Range([e1], [e1].SpecialCells(xlLastCell).Offset(2, 2)).EntireColumn.Delete
ReDim myMat(1 To [c4], 1 To mm)
Elem = [b2].Resize(nn)
ReDim piv(1 To mm)
rElem = 1: piv(1) = 1
Do
For kk = 1 + rElem To mm: piv(kk) = piv(rElem) + kk - rElem: Next kk
Do While piv(mm) <= nn
r_Comb = r_Comb + 1
For kk = 1 To mm: myMat(r_Comb, kk) = Elem(piv(kk), 1): Next kk
piv(mm) = 1 + piv(mm)
Loop
rElem = mm
Do
rElem = rElem - 1: If rElem = 0 Then GoTo Fin
piv(rElem) = 1 + piv(rElem)
Loop Until piv(rElem) <= nn - mm + rElem
Loop
Fin:
[e2].Resize([c4], mm) = myMat
ReDim myMat(1 To 1)
[e2].Offset(, mm).ColumnWidth = 10: [e2].Resize([c4], mm).EntireColumn.AutoFit
Application.ScreenUpdating = True
End Sub