Clipper On Line • Ver Tópico - Como excluir uma coluna do Excel

Como excluir uma coluna do Excel

Projeto HwGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

 

Como excluir uma coluna do Excel

Mensagempor Adson » 19 Out 2020 13:58

Boa tarde,

Alguém tem um exemplo de como excluir uma (ou várias) colunas no Excel?

Eu estou usando dessa forma:

    // Exclui colunas desnecessárias conforme o modelo escolhido pelo usuário
    If vTpRelat     = 2  && Detalhado por Fabricante
      oSheet:Columns(03):Delete()  && Ao invés de excluir as colunas 3 e 4, está excluindo
      oSheet:Columns(04):Delete()  && as colunas 3 e 5
    ElseIf vTpRelat = 3  && Detalhado por Seção
      oSheet:Columns(05):Delete()
      oSheet:Columns(06):Delete()
    ElseIf vTpRelat = 4  && Resumido por Fabricante
      oSheet:Columns(01):Delete()
      oSheet:Columns(02):Delete()
      oSheet:Columns(05):Delete()
      oSheet:Columns(06):Delete()
    ElseIf vTpRelat = 5  && Detalhado por Seção
      oSheet:Columns(01):Delete()
      oSheet:Columns(02):Delete()
      oSheet:Columns(03):Delete()
      oSheet:Columns(04):Delete()
    EndIf


O que pode estar errado? Já pesquisei na documentação da Microsoft, mas não encontrei nada que apontasse o erro.

Obs: A planilha é gerada por uma rotina genérica, mas que ao final, eu excluo algumas colunas que não interessam ao usuário conforme o modelo que ele escolheu.

xHarbour 1.2.3 / HWGui
Avatar de usuário

Adson
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 33
Data de registro: 05 Mar 2019 10:36
Cidade/Estado: GOIANIA/GO
Curtiu: 38 vezes
Mens.Curtidas: 4 vezes

Como excluir uma coluna do Excel

Mensagempor Vlademiro » 19 Out 2020 14:11

Olá,

Sempre que eu tinha dúvidas no Excel eu criava uma macro e depois ia olhar o que ele gerou... Vc fez isso ?
Avatar de usuário

Vlademiro
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 749
Data de registro: 11 Jul 2005 02:46
Curtiu: 22 vezes
Mens.Curtidas: 62 vezes

Como excluir uma coluna do Excel

Mensagempor Toledo » 19 Out 2020 14:41

Adson escreveu:O que pode estar errado? Já pesquisei na documentação da Microsoft, mas não encontrei nada que apontasse o erro.


Eu acho que quando você exclui a coluna 3, então a coluna 4 fica sendo a coluna 3 e a coluna 5 fica sendo a coluna 4. Então faz um teste excluindo duas vezes a coluna 3.

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar de usuário

Toledo
Administrador

Administrador
 
Mensagens: 3038
Data de registro: 22 Jul 2003 18:39
Cidade/Estado: Araçatuba - SP
Curtiu: 263 vezes
Mens.Curtidas: 258 vezes

Como excluir uma coluna do Excel

Mensagempor Adson » 19 Out 2020 15:03

É exatamente isso !!!!

A solução é bastante simples:

    // Exclui colunas desnecessárias conforme o modelo escolhido pelo usuário
    If vTpRelat     = 2  && Detalhado por Fabricante
      oSheet:Range("C:D"):Delete()
    ElseIf vTpRelat = 3  && Detalhado por Seção
      oSheet:Range("E:F"):Delete()
    ElseIf vTpRelat = 4  && Resumido por Fabricante
      oSheet:Range("A:B,E:F"):Delete()
    ElseIf vTpRelat = 5  && Resumido por Seção
      oSheet:Range("A:D"):Delete()
    EndIf


Obrigado.
Avatar de usuário

Adson
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 33
Data de registro: 05 Mar 2019 10:36
Cidade/Estado: GOIANIA/GO
Curtiu: 38 vezes
Mens.Curtidas: 4 vezes

Como excluir uma coluna do Excel

Mensagempor Adson » 20 Out 2020 09:07

Vlademiro escreveu:Olá,

Sempre que eu tinha dúvidas no Excel eu criava uma macro e depois ia olhar o que ele gerou... Vc fez isso ?


Sua dica de gravar uma macro no excel, de fato é muito boa. Obrigado.

Sub Exclui_Coluna()
'
' Exclui_Coluna Macro
'

'
    Range("A:B,D:F").Select
    Range("H2").Activate
    Selection.Delete Shift:=xlToLeft
End Sub


Eu só não consegui usar mais de uma sequência de colunas com o método Range(), dessa forma Range("A:B,D:F") , deu erro na execução. Nesse caso, eu precisei executar o Range() para cada sequência de colunas a excluir, pois, parece que o Range() não trabalha com mais de um parâmetro.

    If vTpRelat     = 2  && Detalhado por Fabricante
      oSheet:Range("C:D"):Delete()
    ElseIf vTpRelat = 3  && Detalhado por Seção
      oSheet:Range("E:F"):Delete()
    ElseIf vTpRelat = 4  && Resumido por Fabricante
      oSheet:Range("A:B"):Delete()   && Seguindo o conselho do Toledo pois após excluir uma coluna,
      oSheet:Range("C:D"):Delete()   && o Excel faz uma reclassificação das colunas
    ElseIf vTpRelat = 5  && Resumido por Seção
      oSheet:Range("A:D"):Delete()
    EndIf
Avatar de usuário

Adson
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 33
Data de registro: 05 Mar 2019 10:36
Cidade/Estado: GOIANIA/GO
Curtiu: 38 vezes
Mens.Curtidas: 4 vezes




Retornar para HwGui

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 5 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro