Copiar celdas Visibles - Problema

Hola, tengo un libro con varias hojas, en la hoja "Inscriptos" en la fila 2 tengo Títulos, desde col. "A" hasta la "R". Fila 48 en Blanco. Fila 49 con totales. Col "B" numerac. Automat. Col. "C" nombres. Col. Col. "E" hasta la "Q" tiene un "1" si está inscripto.

aplico un filtro automático seleccionando cada col por = 1.

Uso la siguiente macro:

Sub SelAlum(xPrueba As Integer, rango As String, celda As String)

Dim ufila, i As Long

Sheets("Pruebas").Select

Range(rango).Select

Range(rango).ClearContents
Sheets("Inscriptos").Select

With ActiveSheet

.AutoFilterMode = False

End With
ufila = Columns("C:C").Cells.Find("*", , xlFormulas, xlPart, xlByRows, xlPrevious).Row

Range("D2").Select

Selection.AutoFilter

ActiveSheet.Range("$A$2:$Q$48").AutoFilter Field:=xPrueba, Criteria1:="1"

Range("B3").Select

If Range("C3").Value = "" Then Exit Sub

Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select

Range("B3:C3").Select

Range(Selection, Selection.End(xlToRight)).Select

Range(Selection, Selection.End(xlDown)).Select
Selection.Copy Sheets("Pruebas").Select

Range(celda).Select ActiveSheet.Paste

Application.CutCopyMode = False

End Sub

El problema es cuando tiene solamente filtrada la fila 3, copia toda la hoja, no solo esa fila y por ende al tratar de pegarla me da error.

Gracias por sus ayudas....

1 Respuesta

Respuesta
1

Reemplaza las siguientes líneas.

'***

ufila = Columns("C:C").Cells.Find("*", , xlFormulas, xlPart, xlByRows, xlPrevious).Row
Range("D2").Select
Selection.AutoFilter
ActiveSheet.Range("$A$2:$Q$48").AutoFilter Field:=xPrueba, Criteria1:="1"
Range("B3").Select
If Range("C3").Value = "" Then Exit Sub
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
Range("B3:C3").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy Sheets("Pruebas").Select

'***

Por estas

ufila = Columns("C:C").Cells.Find("*", , xlFormulas, xlPart, xlByRows, xlPrevious).Row
Range("D2").Select
Selection.AutoFilter
ActiveSheet.Range("$A$2:$Q$48").AutoFilter Field:=xPrueba, Criteria1:="1"

ulin = Range("C" & Rows.Count).End(xlUp).Row
Range("B3:C" & ufila).Select

Selection.Copy Sheets("Pruebas").Select`

'*****

Saludos. Dam

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas