Se ha producido el error "1004" en tiempo de ejecución: Error definido por la aplicación o el objeto

Soy nuevo para código para VB en excel y generar macros, tengo un problema con un código que anteriormente encontré en todoexpertos ¿Cómo copiar filas que cumplan una condición de una hoja a otra? Y lo aplique a la libro en excel en el que estoy trabajando, genera un problema, "Se ha producido el error "1004" en tiempo de ejecución: Error definido por la aplicación o el objeto", Me podrían ayudar para donde encontrar el problema; adjunto el código, el problema esta en donde se marca.

Private Sub CommandButton2_Click()
Cuenta = Me.ListBox1.ListCount
For i = 0 To Cuenta - 1
If Me.ListBox1.Selected(i) = True Then
'nombres de hojas
Set h1 = Sheets("Datos")
Set h2 = Sheets("formatol")
'columna para verificar si tiene un 1
col = Me.ListBox1.Selected(i)
'última fila con datos de la hoja2
u = h2.UsedRange.Rows(h2.UsedRange.Rows.Count).Row + 1

'AQUI SE GENERA EL ERROR
For x = 1 To h1.Range(col & Rows.Count).End(xlUp).Row 
If h1.Cells(i, col) = 1 Then
'Pasar datos a la hoja2,
'del lado izquierdo pon la columna destino
'del lado derecho pon la columna origen
'Por ejemplo si la hoja2 la columna B recibe la columna D
h2.Range("A" & u) = h1.Range("C12")
'Por ejemplo si la hoja2 la columna A recibe la columna E
h2.Range("B" & u) = h1.Range("L12")
'Por ejemplo si la hoja2 la columna C recibe la columna M
h2.Range("C" & u) = h1.Range("D15")
'Por ejemplo si la hoja2 la columna B recibe la columna D
h2.Range("D" & u) = h1.Range("D16")
'Por ejemplo si la hoja2 la columna A recibe la columna E
h2.Range("E" & u) = h1.Range("D17")
'Por ejemplo si la hoja2 la columna C recibe la columna M
h2.Range("F" & u) = h1.Range("T5")
'Por ejemplo si la hoja2 la columna B recibe la columna D
h2.Range("G" & u) = h1.Range("U5")
'Por ejemplo si la hoja2 la columna A recibe la columna E
h2.Range("H" & u) = h1.Range("D20")
'Por ejemplo si la hoja2 la columna C recibe la columna M
h2.Range("I" & u) = h1.Range("C21")
'Por ejemplo si la hoja2 la columna C recibe la columna M
h2.Range("J" & u) = h1.Range("M21")
u = u + 1
End If
Next x
End If
Next i
Unload Me
End Sub

1 respuesta

Respuesta
1

Solucione el problema con este código para copiar la fila en la Hoja2 que es la de Datos hacia diferentes celdas en la Hoja1, y funciono.

Private Sub CommandButton2_Click()
Cuenta = Me.ListBox1.ListCount
For i = 0 To Cuenta - 1
If Me.ListBox1.Selected(i) = True Then
Set h1 = Sheets("Datos")
Set h2 = Sheets("formatol")
col = ListBox1.Value
Set Busco = Sheets("Datos").Range("A3:A700").Find(ListBox1.Value)
fila = Busco.Row
h2.Cells(12, "C").Value = h1.Cells(fila, "A").Value
h2.Cells(12, "L").Value = h1.Cells(fila, "B").Value
h2.Cells(15, "D").Value = h1.Cells(fila, "C").Value
h2.Cells(16, "D").Value = h1.Cells(fila, "D").Value
h2.Cells(17, "D").Value = h1.Cells(fila, "E").Value
h2.Cells(5, "T").Value = h1.Cells(fila, "F").Value
h2.Cells(5, "U").Value = h1.Cells(fila, "G").Value
h2.Cells(20, "D").Value = h1.Cells(fila, "H").Value
h2.Cells(21, "C").Value = h1.Cells(fila, "I").Value
h2.Cells(21, "M").Value = h1.Cells(fila, "J").Value
Unload Me
End If
Next i
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas