Ayuda URGENTE en macro
Necesito de su gentil ayuda con respecto a un trabajo que estoy desarrollando en excel con una base de datos de inventario.
Lo que me urge y ya no puedo pasar de ahí, es que tengo un textbox que pregunta la serie a buscar y todo lo que encuentre con esa serie lo pasa a una hoja con nombre de Sheet7 (posteriormente le voy a poner nombre de REPORTE), esto ya logé que lo hiciera, pero lo que no he podido lograr es que cada vez que pase los datos encontrados, me borre antes los datos que estaban en esa hoja (Sheet7) que fue de una búsqueda anterior. ¿Me puede ayudar para que cuando busque el dato que quiero antes de pasarlos a la hoja llamada Sheet7 limpie o borre los datos que ya estaban?
Quiero aclarar que las filas 1 y 2 son fijas, ya que ahí tengo encabezados, y lo que requiero es que a partir de la fila 3 en adelante se borren los datos de una búsqueda anterior.
Le anexo el código que tengo que me sirve como localizar el dato y que copie todo lo encontrado a ese dato a la hoja llamada Sheet7.
En mi archivo original tengo 3 hojas llamadas 2009, 2010 y 2011, pero el código que estoy usando solo me busca en la hoja que yo le especifico, pero quisiera que me busacara en las tres hojas, y todo lo que encuentre del dato a buscar en esas tres hojas lo copie a la hoja Sheet7.
De antemano, le agradezco su valiosa ayuda para resolver este problema del que ya no he encontrado la solución y que tengo que entregar en mi trabajo.
Private Sub BUSQUEDA_Click()
Dim ultima_fila As Long
Dim ultima_columna As Long
Dim fila As Long
Dim columna As Long
Dim fila1 As Long
Dim columna1 As Long
Dim buscar As String
Dim cadena As String
Dim encontro As Boolean
encontro = False
buscar = Application.InputBox("No. De Serie para realizar copia en la hoja REPORTE:", "Parametro Requerido", "")
If buscar <> "" Then
buscar = UCase(buscar)
ultima_fila = Worksheets("2010").Cells.SpecialCells(xlCellTypeLastCell).Row
ultima_columna = Worksheets("2010").Cells.SpecialCells(xlCellTypeLastCell).Column
fila3 = 3
For fila = 3 To ultima_fila
columna1 = 1
If Worksheets("2010").Cells(fila, 15) = buscar Then
For columna = 1 To ultima_columna
Worksheets("Sheet7").Cells(fila3, columna1) = Worksheets("2010").Cells(fila, columna)
columna1 = columna1 + 1
Next columna
fila3 = fila3 + 1
End If
Next fila
End If
End Sub
Lo que me urge y ya no puedo pasar de ahí, es que tengo un textbox que pregunta la serie a buscar y todo lo que encuentre con esa serie lo pasa a una hoja con nombre de Sheet7 (posteriormente le voy a poner nombre de REPORTE), esto ya logé que lo hiciera, pero lo que no he podido lograr es que cada vez que pase los datos encontrados, me borre antes los datos que estaban en esa hoja (Sheet7) que fue de una búsqueda anterior. ¿Me puede ayudar para que cuando busque el dato que quiero antes de pasarlos a la hoja llamada Sheet7 limpie o borre los datos que ya estaban?
Quiero aclarar que las filas 1 y 2 son fijas, ya que ahí tengo encabezados, y lo que requiero es que a partir de la fila 3 en adelante se borren los datos de una búsqueda anterior.
Le anexo el código que tengo que me sirve como localizar el dato y que copie todo lo encontrado a ese dato a la hoja llamada Sheet7.
En mi archivo original tengo 3 hojas llamadas 2009, 2010 y 2011, pero el código que estoy usando solo me busca en la hoja que yo le especifico, pero quisiera que me busacara en las tres hojas, y todo lo que encuentre del dato a buscar en esas tres hojas lo copie a la hoja Sheet7.
De antemano, le agradezco su valiosa ayuda para resolver este problema del que ya no he encontrado la solución y que tengo que entregar en mi trabajo.
Private Sub BUSQUEDA_Click()
Dim ultima_fila As Long
Dim ultima_columna As Long
Dim fila As Long
Dim columna As Long
Dim fila1 As Long
Dim columna1 As Long
Dim buscar As String
Dim cadena As String
Dim encontro As Boolean
encontro = False
buscar = Application.InputBox("No. De Serie para realizar copia en la hoja REPORTE:", "Parametro Requerido", "")
If buscar <> "" Then
buscar = UCase(buscar)
ultima_fila = Worksheets("2010").Cells.SpecialCells(xlCellTypeLastCell).Row
ultima_columna = Worksheets("2010").Cells.SpecialCells(xlCellTypeLastCell).Column
fila3 = 3
For fila = 3 To ultima_fila
columna1 = 1
If Worksheets("2010").Cells(fila, 15) = buscar Then
For columna = 1 To ultima_columna
Worksheets("Sheet7").Cells(fila3, columna1) = Worksheets("2010").Cells(fila, columna)
columna1 = columna1 + 1
Next columna
fila3 = fila3 + 1
End If
Next fila
End If
End Sub
2 respuestas
Respuesta de Nelson Felipe Serrano
1
Respuesta de Luis Gonzalez
1