Macro para filtrar copiar y pegar en una hoja

Macro con filtro copiar y pegar

Tengo una hoja que se llama SCS donde el la columna A3 tengo un valor, en este caso flores, donde deseo realizar un filtro en la hoja de salarios y la información que esta allí desde la columna a la de deseo pegarlo en la hoja scs B37, pero cuando cambio el filtro no se ejecuta por que me trae flores y quiero que me traiga los dato de la celda a3 del libro scs

Su ayuda

Sub Macro1()
'
' Macro1 Macro
'
'
    Sheets("scs").Select
    Range("A3").Select
    Selection.Copy
    Sheets("salarios").Select
    ActiveSheet.Range("$A$1:$D$158030").AutoFilter Field:=1, Criteria1:= _
        "flores"
    Range("A1:D1").Select
    Range(Selection, Selection.End(xlDown)).Select
    Range("A1:D158031").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("scs").Select
    Range("B37").Select
    ActiveSheet.Paste
End Sub

1 respuesta

Respuesta
1

El problema es que el valor del filtro que tienes puesto es estático

  ActiveSheet.Range("$A$1:$D$158030").AutoFilter Field:=1, Criteria1:= _
       "flores"

Podes resolverlo con:

Valor = Sheets("scs").range("C3").value

y reemplazar la sentencia del filtro por:

  ActiveSheet.Range("$A$1:$D$158030").AutoFilter Field:=1, Criteria1: Valor

El código consolidado quedaría del siguiente modo:

 Macro1 Macro
    Sheets("scs").Activate
    Valor = Sheets("scs").range("C3").value
    Sheets("salarios").Activate
    Sheets("salarios").Range("$A$1:$D$158030").AutoFilter Field:=1, Criteria1: Valor
    Range("A1:D1").Select
    Range(Selection, Selection.End(xlDown)).Select
    Range("A1:D158031").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("scs").Select
    Range("B37").Select
    ActiveSheet.Paste
End Sub

Por favor recuerda valorar la respuesta!

Slds

Juan

Hola gracias Juan

La macro se ejecuta pero me copia todos los valores del la hoja de salario, el valor que deseo copiar en el filtro se encuentra en la hoja scs A3

Saludos

Disculpa la demora, no revisé la parte del Paste values ya que creí que eso ya estaba funcionando OK, te envío la macro solicitada con la corrección para que copie solo los valores Visibles al filtrar

Sub Macro1()
    Set InputSH = Sheets("scs")
    Set FilterSH = Sheets("salarios")
    InputSH.Activate
    Valor = InputSH.Range("C3").Value
    TableHeaderRow = 1
    FilterColumn = 1
    LastColumn = 4
    LR = FilterSH.Cells(FilterSH.Rows.Count, FilterColumn).End(xlUp).Row
    FilterSH.Activate
    FilterSH.Range(Cells(TableHeaderRow, FilterColumn), Cells(LR, LastColumn)).AutoFilter Field:=FilterColumn, Criteria1:=Valor
    FilterSH. Range(Cells(TableHeaderRow, FilterColumn), Cells(LR, LastColumn)). SpecialCells(xlCellTypeVisible). Copy
    InputSH.Activate
    InputSH.Range("B37").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
End Sub

Por favor recuerda valorar la respuesta!

Slds

Juan

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas