Ir ao conteúdo
  • Cadastre-se
Yohana dos Santos Dias

Gerar relatório com intervalo de colunas - vba

Recommended Posts

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

 

Compartilhar este post


Link para o post
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.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×