Copiar filas dependiendo de condición de una columna
Esta va para DAM:
Tengo el siguiente código:
Sub CopiarColumnas() Application.ScreenUpdating = False cols = Array("C", "B", "D", "K", "L", "M", "H", "N", "O", "P", "Q", "R", "U", "W", "T", "F") Set h1 = Sheets("Autor_MASTER") Set h2 = Sheets("Reportes") h2.Cells.ClearContents k = 1 For J = LBound(cols) To UBound(cols) u = h1.Cells(Rows.Count, cols(J)).End(xlUp).Row h1.Range(h1.Cells(5, cols(J)), h1.Cells(u, cols(J))).Copy h2.Cells(3, k).PasteSpecial xlValues k = k + 1 Next Application.ScreenUpdating = True h1.Select MsgBox "Datos copiados", vbInformation End Sub
Este me permite copiar columnas especificas a otra hoja, el asunto es que tengo al final de la hoja principal una columna flag (0,1) lo que quisiera es que a partir de este codigo SOLO copie las filas que tienen el flag activo y lo que esta inactivo copie a una hoja aparte (hoja3), me facilitaste el sgte código:
Pero este copia todas las columnas y copia todo tal cual con fórmulas y no con valores.
La pregunta es, ¿Cómo puedo complementar el primer código con este segundo? Gracias.
Sub CopiarFila() 'Por.Dante Amor Set h1 = Sheets("Hoja1") 'hoja origen Set h2 = Sheets("Hoja2") 'hoja destino Set h3 = Sheets("Hoja3") 'hoja destino ' col = "S" 'columna flag For i = 1 To h1.Range(col & Rows.Count).End(xlUp).Row Select Case h1.Cells(i, col) Case 1: h1.Rows(i).Copy h2.Rows(h2.Range(col & Rows.Count).End(xlUp).Row + 1) Case 0: h1.Rows(i).Copy h3.Rows(h3.Range(col & Rows.Count).End(xlUp).Row + 1) End Select Next MsgBox "Fin" End Sub