Mi macro no busca los datos

buenas noches tengo esta macro que es para buscar en dos columnas un mismo dato y estoy tratado de hacerla funcionar pero no me nada alguien podría decirme donde esta el error

Private Sub Worksheet_Change(ByVal target As Range)

Dim rango As Range

Application.EnableEvents = False

If LCase(target.Parent.Name) = "pedido" Then

If (Not Intersect(Columns("C:L"), target) Is Nothing) And target.Row > 27 Then If target.Column < 6 Then

Set rango = Worksheets("PRODUCTO").Columns(1).Find(target)

If Not rango Is Nothing Then

Range("F" & target.Row) = Worksheets("PRODUCTO").Cells(rango.Row, 2)

Else

Set rango = Worksheets("PRODUCTO").Columns(2).Find(target)

If Not rango Is Nothing Then

Range("H" & target.Row) = Worksheets("PRODUCTO").Cells(rango.Row, 1)

End If

End If

End

If Application.EnableEvents = True

End Sub

saludos

Respuesta
1

Este final no creo que sea así

If Application.EnableEvents = True
End Sub

Puede que no hayas escrito lo que tienes en l a macro.

Pues sinb decir q

Se mandó sola la respuesta.

Decía que sin decir el fallo ni la línea es muy difícil. Mejor mándame el libro con los datos y ejemplo que lo que debe hacer la macro.

MI correo es [email protected]

Pon como asunto el título de la pregunta y como nombre del libro algo descriptivo como

MacroNoBuscaDatos.XLSM

hola bueno lo que hice fue hacer un copiar y pegar aquí para que me ayuden tal cual esta la macro en mi fichero

saludos

Si, la he copiado y la línea

If Application.EnableEvents = True

Da error. Es que falta el Then y lo que hay que hacer.

También la línea

If (Not Intersect(Columns("C:L"), target) Is Nothing) And target.Row > 27 Then If target.Column < 6 Then

Da error, a no ser que la siguiente sea continuación de esta.

Pero aparte de eso te preguntaría otra cosa. ¿Esa macro la tienes en un módulo? Es que no funciona así, la macro debe estar en la misma hoja donde queremos controlar los cambios.

Por eso es mucho mejor que mandes el fichero y solucionamos todo de golpe.

[email protected]

Esta es lo corrección que necesita la macro tenías mal algunas cosillas

If target.Column < 8 Then
   Set rango = Worksheets("PRODUCTO").Columns(1).Find(target)
   If Not rango Is Nothing Then Range("H" & target.Row) = Worksheets("PRODUCTO").Cells(rango.Row, 2)
 Else
   Set rango = Worksheets("PRODUCTO").Columns(2).Find(target)
   If Not rango Is Nothing Then Range("C" & target.Row) = Worksheets("PRODUCTO").Cells(rango.Row, 1)
 End If

Y las celdas M27 a M47 necesitan esta fórmula

=SI(H27="";"";BUSCARV(H27;PRODUCTO!$B1:$AA$1399;2;FALSO))

La pones en M27 y luego copias esa celda en las otras.

Es que al no tener ciertas referencias absolutas iban cambiando algunas en la fórmula que no debían cambiar.

Mira a ver si con eso ya funciona bien. Y si ya lo está no olvides puntuar.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas