Excel 2003: copiar filas consecutivas y pegar en filas con filtro

12/07/2005 - 18:25 por Vere | Informe spam
En Excel 2003 cuando copio el contenido de una serie de filas consecutivas 1,
2, 3,4,5,6,7 y lo pego en otra hoja en filas con filtro; por ejemplo:
4,5,7,9,10,11,15, no consigo que lo pegue en las filas 4, 5, 7, 9, 10, 11,
15; es decir en las filas que yo veo, si no que lo hace también de modo
consecutivo desde la primera en la que me posiciono; en este caso
4,5,6,7,8,9,10. ¿Tiene solución?

Gracias de antemano y saludos.

Veredas
 

Leer las respuestas

#1 Héctor Miguel
13/07/2005 - 08:42 | Informe spam
hola, Vere !

... cuando copio... de una serie de filas consecutivas 1, 2, 3,4,5,6,7
y lo pego en otra hoja en filas con filtro; por ejemplo: 4,5,7,9,10,11,15
no consigo que lo pegue... en las filas que yo veo
Tiene solucion?



[hasta donde se]... solo a traves de macros :-(
en el ejemplo que te expongo al final NO estan 'contempladas' [posibles] 'discrepancias' [p.e.]
-> entre el numero de celdas 'de origen' y el numero de celdas 'filtradas' :-( [pero]...
-> como 'punto de partida' [y con los datos que aportas] estoy suponiendo que...
-> las 7 filas consecutivas estan en la hoja2 en el rango 'A2:A8'
-> el resultado del autofiltro 'arroja' -tambien- 7 filas/celdas visibles y...
-> las 7 filas/celdas visibles/filtradas corresponden a la columna 1 del rango con autofiltros :))

si cualquier duda [o informacion adicional]... comentas?
saludos,
hector.
en un modulo de codigo 'normal' ==Sub Copiar_a_RangoFiltrado()
Dim Filtrados As String, Destino, Celda As Range, Sig As Byte
With Worksheets("Hoja1")
If Not .AutoFilterMode Then Exit Sub
If Not .FilterMode Then Exit Sub
With .AutoFilter.Range
Filtrados = .Offset(1).Resize(.Rows.Count - 1, 1) _
.SpecialCells(xlCellTypeVisible).Address
End With
ReDim Destino(Range(Filtrados).Cells.Count - 1)
For Each Celda In Range(Filtrados)
Destino(Sig) = Celda.Address
Sig = Sig + 1
Next
For Sig = LBound(Destino) To UBound(Destino)
.Range(Destino(Sig)) = _
Worksheets("Hoja2").Range("a2:a8").Cells(Sig + 1)
Next
End With
End Sub

Preguntas similares