No logro descubrir el error en mi código
He estado trabajando en un código para buscar un encabezado que el usuario seleccione de un combox, el problema es que el código no encuentra el encabezado (aunque este exista), se supone que la macro debe buscar encabezado y se llevara los items que le pertenezcan a otra hoja, en caso de no encontrar el elemento arrojara un mensaje diciendo "Error al agregar los Accesorios" pero como dije siempre arroja ese mensaje, exista o no exista el elemento, acá les muestro el código que uso
Private Sub cmdagacc_Click() Set h1 = Sheets("MEMORIAS ACTO") 'Origen Set h2 = Sheets("EMPALMES") 'Destino Set R1 = h1.Range("CJ29") Set R2 = h1.Range("CJ87") Evn = cbxtacc.Value Dim rng As Range If cbxtacc.Value = "" Or cbxtacc.ListIndex = -1 Then MsgBox "Seleccione un tipo de Accesorio" cbxtacc.SetFocus Exit Sub End If Existe = False Dim R As Object Set b = h1.Range("CJ29:CK87").Find(Evn, LookIn:=xlValues, LookAt:=xlWhole) 'For Each b In Range("CJ29:CK87").Cells If Not b Is Nothing Then cl = b.Address Do Fila = b.Row + 1 k = 2 For j = Cells("CJ29").Cells To Columns("CK87").Column If h1.Cells(Fila, j).Value = cbxtacc.Value Then Existe = True Fila = Fila + 1 k = k + 1 Do While h1.Cells(Fila, j).Value <> "" h2.Cells(k, "B").Value = h1.Cells(Fila, j).Value h2.Cells(k, "C").Value = h1.Cells(Fila, j + 1).Value Fila = Fila + 1 k = k + 1 Loop Exit For End If Next Loop While Not b Is Nothing And b.Address <> cl End If 'Next If Existe = False Then MsgBox "Error al agregar los Accesorios", vbExclamation Else MsgBox "Accesorios agregados", vbInformation End If Range("A1") = "Empalmes" End Sub
Como ven incluso trate de cambiar el ciclo If Not b Is Nothing Then por un For Each, pero no funciono lo único que cambia es que el segundo ciclo me genera el error 1004 en esta linea
Para darme a entender mejor estos son los pasos que sigue la macro:
- Busca el encabezado que el usuario seleccione de un combobox
- Va una hoja llamada "EMPALMES" y busca ese encabezado y selecciona los elementos que le pertenecen, así:
- Se lleva esos elementos y los pega de esta forma:
- Y si no encuentra el encabezado sale este mensaje
Reitero que el problema esta en que siempre sale ese mensaje aunque el encabezado exista, agradezco cualquier ayuda que me puedan dar para corregir o modificar mi código y que haga lo que quiero