Ir ao conteúdo
  • Cadastre-se

Gerar relatório com intervalo de colunas - vba


Posts recomendados

Olá pessoal, boa tarde.

 

Tenho dados em uma guia do excel e gostaria de extrair alguns intervalos de colunas para um arquivo a ser criado ao executar o código. Com o código abaixo eu consigo extrair a guia desejada contendo todos os dados e não somente o intervalo desejado.

Exemplo do desejado: Copiar os dados da Guia (RELATORIOS), intervalo de colunas "A : D  e G : H".

 

Private Sub ExportarPlanilhas_Click()

'Declarar variáveis
Dim stCaminho As String
Dim stNomeArquivo As String
Dim stNomePlanilha As String
Dim stNovaPasta As String

'Capturar o endereço da pasta (diretório) que contém o arquivo
stCaminho = ThisWorkbook.Path

'Definir o nome da nova pasta a ser criada
stNovaPasta = "RELATORIOS"

stCaminho = stCaminho & "\" & stNovaPasta

'Criar uma nova pasta, dentro da pasta que contém o arquivo
'chamada RELATORIOS.
'Se a pasta já existir, o código seguirá para a linha seguinte
On Error Resume Next
MkDir stCaminho


'Capturar o nome do arquivo
stNome = ThisWorkbook.Name


'Loop para percorrer as planilhas do arquivo
For Each ws In ThisWorkbook.Worksheets
    
    'Capturar o nome da planilha
    stNomePlanilha = ws.Name
    
    'Testar se o nome da planilha é BANCODEDADOS
    If stNomePlanilha = "BANCODEDADOS" Then
    
    'Se o nome for igual a BANCODEDADOS, a planilha é movida para um
    'novo arquivo do Excel
        ws.Copy
    
    'O novo arquivo é salvo, no formato do arquivo em uso pelo Excel
    'e seu nome é definido como o nome da planilha, seguida do nome do arquivo
    ActiveWorkbook.SaveAs _
    Filename:=stCaminho & "\" & stNomePlanilha & "-" & stNome, _
    FileFormat:=ThisWorkbook.FileFormat
    
    'O novo arquivo é fechado
    ActiveWindow.Close SaveChanges:=False
    End If
Next ws

End Sub

Link para o comentário
Compartilhar em outros sites

15 horas atrás, osvaldomp disse:

Olá.

Experimente acrescentar a segunda linha abaixo.

Esse comando irá excluir as colunas "E:F" e "I:M", ajuste se necessário.


 


ws.Copy
ActiveSheet.Range("E:F,I:M").Delete

 

Olá, osvaldomp,

 

Funcionou perfeitamente, muito obrigada pela ajuda.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!