Copiar filas a otra hoja utilizando filtro

26/02/2011 - 23:35 por Uyyy | Informe spam
Hola.
Tengo una hoja(excel 2003) importada desde un programa y necesito pasar
ciertas filas/columnas a otra hoja bien formateada. Para ello necesito que
la columna 4 sea el filtro. Es decir, si en la columna 4 el valor es XX
entonces copia todas las filas que tengan ese valor a la otra hoja destino
pero sin incluir los datos de la columna 2. Si contiene DD igual. He probado
con autofiltro y luego copiar las filas que me muestra a la otra hoja pero
me copia todas, tanto si contienen XX o cualquier otro valor. Con filtro
avanzado igual.

Alguna idea ?
Gracias.


Hoja origen

Columna1 Columna 2 Columna 3 Columna 4

Fila1 a b c XX
Fila2 d e f XX
Fila3 g h i DD


En la hoja destino quiero que me ponga:

Modelos tipo XX


a c XX
d f XX

Modelos tipo DD

g i DD

Preguntas similare

Leer las respuestas

#1 Cacho R
27/02/2011 - 01:44 | Informe spam
Hola! Uyyy
Lo puedes resolver de varias maneras. Por ejemplo:

_____________________

Sub Macro208()
With [a1].CurrentRegion

ActiveSheet.AutoFilterMode = False
[1:1].Insert Shift:=xlDown

.Offset(-1).Resize(1 + .Rows.Count).AutoFilter Field:=4,
Criteria1:="xx"
.Columns(1).SpecialCells(xlCellTypeVisible).Copy Sheets("Hoja2").[a1]
Intersect(.Cells, [c:d]).SpecialCells(xlCellTypeVisible).Copy
Sheets("Hoja2").[b1]

.Offset(-1).Resize(1 + .Rows.Count).AutoFilter Field:=4,
Criteria1:="dd"
.Columns(1).SpecialCells(xlCellTypeVisible).Copy Sheets("Hoja2").[e1]
Intersect(.Cells, [c:d]).SpecialCells(xlCellTypeVisible).Copy
Sheets("Hoja2").[f1]
End With

ActiveSheet.AutoFilterMode = False
[1:1].Delete

End Sub
_____________________

Saludos, Cacho.
Respuesta Responder a este mensaje
#2 Uyyy
27/02/2011 - 13:10 | Informe spam
Me muestra error en la linea:
.Offset(-1).Resize(1 + .Rows.Count).AutoFilter Field:=4,
Criteria1:="XX"

Se esperaba expresion

"Cacho R" escribió en el mensaje de
noticias:

Hola! Uyyy
Lo puedes resolver de varias maneras. Por ejemplo:

_____________________

Sub Macro208()
With [a1].CurrentRegion

ActiveSheet.AutoFilterMode = False
[1:1].Insert Shift:=xlDown

.Offset(-1).Resize(1 + .Rows.Count).AutoFilter Field:=4,
Criteria1:="xx"
.Columns(1).SpecialCells(xlCellTypeVisible).Copy Sheets("Hoja2").[a1]
Intersect(.Cells, [c:d]).SpecialCells(xlCellTypeVisible).Copy
Sheets("Hoja2").[b1]

.Offset(-1).Resize(1 + .Rows.Count).AutoFilter Field:=4,
Criteria1:="dd"
.Columns(1).SpecialCells(xlCellTypeVisible).Copy Sheets("Hoja2").[e1]
Intersect(.Cells, [c:d]).SpecialCells(xlCellTypeVisible).Copy
Sheets("Hoja2").[f1]
End With

ActiveSheet.AutoFilterMode = False
[1:1].Delete

End Sub
_____________________

Saludos, Cacho.
Respuesta Responder a este mensaje
#3 Cacho R
27/02/2011 - 15:27 | Informe spam
Muchas veces los mensajes en este Foro son truncados.

En este caso, la línea
Criteria1:="XX"

no debe "estar suelta", sino que debe ir inmediatamente después de la
"coma" de la línea anterior:
.Offset(-1).Resize(1 + .Rows.Count).AutoFilter Field:=4,

Y ya que lo mencionas, lo propio ocurre con:

.Offset(-1).Resize(1 + .Rows.Count).AutoFilter Field:=4,
Criteria1:="dd"

De modo que -tan sólo- corrige esas dos cosas.
Saludos, Cacho.
Respuesta Responder a este mensaje
#4 Cacho R
27/02/2011 - 15:32 | Informe spam
Veo que no tienes experiencia en el tema "macros".

Por ello te aclaro y explico que las 4 expresiones:

Sheets("Hoja2").[a1]
Sheets("Hoja2").[b1]

Sheets("Hoja2").[e1]
Sheets("Hoja2").[f1]

definen la posición en la que se copia: en la hoja "Hoja2" y a partir
de las celdas A1, B1, E1 y F1.

Saludos, Cacho.
Respuesta Responder a este mensaje
#5 Uyyy
27/02/2011 - 19:28 | Informe spam
Ok. Muchas gracias por tu ayuda

"Cacho R" escribió en el mensaje de
noticias:

Veo que no tienes experiencia en el tema "macros".

Por ello te aclaro y explico que las 4 expresiones:

Sheets("Hoja2").[a1]
Sheets("Hoja2").[b1]

Sheets("Hoja2").[e1]
Sheets("Hoja2").[f1]

definen la posición en la que se copia: en la hoja "Hoja2" y a partir
de las celdas A1, B1, E1 y F1.

Saludos, Cacho.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida