VBA Seleção de dados filtrados

1

Eu criei um botão de comando para extrair dados de uma lista filtrada para outra planilha na mesma pasta de trabalho. Depois de clicar no botão pela primeira vez, eu queria configurar o comando para limpar a página de destino antes de preenchê-la com dados atualizados nos cliques subsequentes do botão. O resultado foi o seguinte:

Private Sub CommandButton1_Click()
Sheets("Extract").Select
Selection.ClearContents
Sheets("Pricing Proposal").Select
ActiveSheet.AutoFilter.Range.Copy
Sheets("Extract").Select
Worksheets("Extract").Rows(6).Select
ActiveSheet.Paste

End Sub

O problema é que a limpeza da landing sheet nem sempre é feita quando eu clico, deixando os dados na landing sheet que não são desejados.

Qualquer ajuda seria muito apreciada!

    
por CLamp 31.12.2015 / 00:43

1 resposta

0

Acho que você perdeu um simples "Cells.Select", que seleciona tudo na página, começando pela célula A1. Não sabendo como sua página está configurada, você pode preferir selecionar um intervalo específico conforme comentado abaixo.

    Sheets("Extract").Select
    Cells.Select                        'or Range("A1:C6").Select or select Defined-Range like this Range(DefinedName).Select
    Selection.ClearContents
    Sheets("Pricing Proposal").Select
    Cells.Select                        ' or something like Range("A1:C8").Select or Range(DefinedName).Select or simpley Range("A1").Select
    Selection.Copy
    Sheets("Extract").Select
    Range("A1").Select                  ' or predefined Cell or range of cells or name as above comments
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Range("A1").Select                  ' so the whole page isn't selected, or just pick a cell or delete this line if no need

Espero que isso tenha ajudado:)


Simplificado: seu código com um acréscimo

Private Sub CommandButton1_Click()
Sheets("Extract").Select
Rows("1:6").Select
Selection.ClearContents
...
    
por 31.12.2015 / 01:21