¿Cuál es el error en el código VBA?

Este programa tiene que buscar un lista de datos pero me da un error, abajo indico esa línea. Su ayuda para poder solucionar esto :) gracias

Private Sub CommandButton1_Click()
Rem esta variable almacena el rango de las OS registradas
Dim BUSCA_OS As Object
Dim FILA As Integer
Dim x As Integer
'obtener el nº de la ultima fila
x = ActiveSheet.Cells(Rows.Count, "F").End(xlUp).Row
'Hoja5.Range("B2") = x
For i = 2 To x
Rem Variable Variant que almacena la OS que deseas buscar
OS_BUSCADO = Hoja5.Range("F" & i)
Rem SE DA VALOR A VARIABLE BUSCA OS
Set BUSCA_OS = Hoja2.Range("F3:F1048576").Find(WHAT:=OS_BUSCADO) 
FILA = Range(BUSCA_OS.Address).Row ----> AQUI ES EL ERROR
Hoja5.Range("A" & i) = Hoja2.Range("A" & FILA)
Hoja5.Range("B" & i) = Hoja2.Range("B" & FILA)
Hoja5.Range("C" & i) = Hoja2.Range("C" & FILA)
Hoja5.Range("D" & i) = Hoja2.Range("D" & FILA)
Hoja5.Range("E" & i) = Hoja2.Range("E" & FILA)
Hoja5.Range("F" & i) = Hoja2.Range("F" & FILA)
Hoja5.Range("G" & i) = Hoja2.Range("G" & FILA)
Hoja5.Range("H" & i) = Hoja2.Range("H" & FILA)
Hoja5.Range("I" & i) = Hoja2.Range("I" & FILA)
Hoja5.Range("J" & i) = Hoja2.Range("J" & FILA)
Hoja5.Range("K" & i) = Hoja2.Range("K" & FILA)
Hoja5.Range("L" & i) = Hoja2.Range("L" & FILA)
Hoja5.Range("M" & i) = Hoja2.Range("M" & FILA)
Hoja5.Range("N" & i) = Hoja2.Range("N" & FILA)
Hoja5.Range("O" & i) = Hoja2.Range("O" & FILA)
Hoja5.Range("P" & i) = Hoja2.Range("P" & FILA)
Hoja5.Range("Q" & i) = Hoja2.Range("Q" & FILA)
Hoja5.Range("R" & i) = Hoja2.Range("R" & FILA)
Hoja5.Range("S" & i) = Hoja2.Range("S" & FILA)
Hoja5.Range("T" & i) = Hoja2.Range("T" & FILA)
Next
End Sub

1 respuesta

Respuesta
1

Visita:

Cursos de Excel y Macros

--------------------------

El error te aparece cuando no encuentra el valor, para eso revisas si el objeto no está vacío.

Private Sub CommandButton1_Click()
'Por Dante Amor
  Dim busca_OS As Range   'esta variable almacena el rango de las OS registradas
  Dim i As Long, j As Long, fila As Long
  '
  For i = 2 To Hoja5.Cells(Rows.Count, "F").End(xlUp).Row
    Set busca_OS = Hoja2.Range("F3", Hoja2.Range("F" & Rows.Count).End(3)).Find(Hoja5.Range("F" & i).Value, , xlValues, xlWhole, , , False)
    If Not busca_OS Is Nothing Then
      fila = Range(busca_OS.Address).Row
      For j = 1 To Columns("T").Column
        Hoja5.Cells(i, j).Value = Hoja2.Cells(fila, j).Value
      Next
    End If
  Next
End Sub

RECOMENDACIONES:

Curso de macros. Metodo find completo. - YouTube

Curso de macros. Metodo find ejemplos. - YouTube

Curso de macros. Consejos para empezar a programar. - YouTube

Sal u dos Dante Amor

¡Gracias! Dante amor, el programa me funciona de maravilla, aunque hay partes que no entiendo me pondré los videos recomendados y revisar detenidamente el código, nuevo suscriptor :) ganado.

Gra cias.

Esta línea también puede ser así:

fila = busca_OS.Row

Comenta cualquier duda y con gusto lo reviso.

Revisa también

https://youtu.be/HfFCtMl189U 

Sal u dos Dante Amor

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas