Saltar al contenido

Copiar valores filtrados


Recommended Posts

publicado

Hola,

me estoy metiendo en esto de las macros y me he econtrado un problemilla.

Tengo un libro con un montón de datos que de hecho són vínculos a otros muchos libros. Se llama "Offers". Filtro estos y copio las columnas que me interesan hacia un nuevo libro, "Report".

Funciona bastante bien pero en dos casos ("Margenes" y "Precio") sólo me copia la primera fila de entre las filtradas y no el resto.

Cómo puede ser que funcione bien en algunas columnas y no en otras cuando és exactamente el mismo código? Y los origenes son todos vínculos y el destino tiene formato general de celda.

Muchas gracias por vuestra ayuda, os pego lo que tengo hecho.

Sub filtrar_offers()

'Fechas para filtrar y cambio

Dim lFecha1 As String, lFecha2 As String

lFecha1 = InputBox("Ofertes des de")

lFecha2 = InputBox("Ofertes fins")

'Borrar contenido

ActiveSheet.Range("A3:G100").Clear

ActiveSheet.Range("H3:K100").Clear

'Ir a offers y desactivar filtro

Workbooks.Open Filename:="S:\Comercial\Offers.xlsx"

Workbooks("Offers").Activate

Sheets("Active").Select

With Workbooks("Offers").Sheets("Active")

If .AutoFilterMode = True Then .AutoFilterMode = False

End With

'Filtrar en active

Sheets("Active").Range("A3").AutoFilter Field:=22, Criteria1:=">=" & lFecha1, _

Operator:=xlAnd, Criteria2:="<=" & lFecha2

'Seleccionar Precio y copiar

Range("A3").Select

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

Range("AJ3").Select

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

Selection.Copy

Workbooks("Report").Activate

Sheets("Report").Select

Range("F3").PasteSpecial xlPasteValues

Application.CutCopyMode = False

'Seleccionar Percent Margen y copiar

Workbooks("Offers").Activate

Sheets("Active").Select

Range("A3").Select

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

Range("AM3").Select

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

Selection.Copy

Workbooks("Report").Activate

Sheets("Report").Select

Range("G3").PasteSpecial xlPasteValues

Application.CutCopyMode = False

'Seleccionar Responsable y copiar

Workbooks("Offers").Activate

Sheets("Active").Select

Range("A3").Select

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

Range("I3").Select

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

Selection.Copy

Workbooks("Report").Activate

Sheets("Report").Select

Range("A3").Select

ActiveSheet.Paste

Application.CutCopyMode = False

'Seleccionar Ref. y copiar

Workbooks("Offers").Activate

Sheets("Active").Select

Range("A3").Select

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

Range("E3").Select

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

Selection.Copy

Workbooks("Report").Activate

Sheets("Report").Select

Range("B3").PasteSpecial xlPasteValues

Application.CutCopyMode = False

'Seleccionar Customer y copiar

Workbooks("Offers").Activate

Sheets("Active").Select

Range("A3").Select

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

Range("O3").Select

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

Selection.Copy

Workbooks("Report").Activate

Sheets("Report").Select

Range("C3").PasteSpecial xlPasteValues

Application.CutCopyMode = False

'Seleccionar Country y copiar

Workbooks("Offers").Activate

Sheets("Active").Select

Range("A3").Select

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

Range("Q3").Select

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

Selection.Copy

Workbooks("Report").Activate

Sheets("Report").Select

Range("D3").PasteSpecial xlPasteValues

Application.CutCopyMode = False

'Seleccionar Type y copiar

Workbooks("Offers").Activate

Sheets("Active").Select

Range("A3").Select

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

Range("K3").Select

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

Selection.Copy

Workbooks("Report").Activate

Sheets("Report").Select

Range("E3").PasteSpecial xlPasteValues

Application.CutCopyMode = False

Workbooks("Offers").Activate

Sheets("Active").Select

With Workbooks("Offers").Sheets("Active")

If .AutoFilterMode = True Then .AutoFilterMode = False

End With

End Sub

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.