Ir para conteúdo
Fórum Script Brasil
  • 0

Line Style - Erro


Renato Knupp

Pergunta

Pessoal,

criei uma rotina em VBA para atribuir bordas a um determinado grupo de células ( o grupo varia), conforme abaixo

Private Function borda_Espessa()

Workbooks(nome_arquivo).Worksheets(planilha).Range(celulas).Borders(xlEdgeLeft).LineStyle = xlContinuous
Workbooks(nome_arquivo).Worksheets(planilha).Range(celulas).Borders(xlEdgeLeft).Weight = xlThick

Workbooks(nome_arquivo).Worksheets(planilha).Range(celulas).Borders(xlEdgeTop).LineStyle = xlContinuous
Workbooks(nome_arquivo).Worksheets(planilha).Range(celulas).Borders(xlEdgeTop).Weight = xlThick

Workbooks(nome_arquivo).Worksheets(planilha).Range(celulas).Borders(xlEdgeBottom).LineStyle = xlContinuous
Workbooks(nome_arquivo).Worksheets(planilha).Range(celulas).Borders(xlEdgeBottom).Weight = xlThick

Workbooks(nome_arquivo).Worksheets(planilha).Range(celulas).Borders(xlEdgeRight).LineStyle = xlContinuous
Workbooks(nome_arquivo).Worksheets(planilha).Range(celulas).Borders(xlEdgeRight).Weight = xlThick

End Function

só que apresenta um erro : Não é possivel definir a propriedade LineStyle da classe border

as variáveis são definidas de acordo com a variação das células e nome do arquivo, mas acho que não é esse o problema pois outras duas funções com a mesma finalidade não apresentam erro (hora funciona , hora da o erro), estive lendo a respeito e algumas pessoas disseram que isso é uma falha do office.

O interessante é que se eu abrir um documento novo e copiar o codigo pra lá ele funciona mas se eu salvar esse doc , fechar e abrir novamento ele já começa a dar o erro.

Alguém sabe com resolver isso?

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0
Ninguém sabe ?
Não são permitidos up's de acordo com a regra 3.8 (ver regras):
Não é permitida a postagem de mensagens com a finalidade de manter o tópico no início da lista (up), nem de mensagens que não se refiram ao assunto do tópico (flood). Caso isso ocorra, as mensagens serão excluídas e os autores, advertidos.
Link para o comentário
Compartilhar em outros sites

  • 0

Olha, eu já passei por um problema parecido uma vez, mas o seu código, aparentemente não contém o mesmo erro que eu cometi.

No meu caso, eu obtive esta mensagem de erro porque eu estava tentando atribuir o estilo de linha xlInsideHorizontal para uma célula única.

A propriedade xlInsideHorizontal, serve para formatar as linhas que ficam no interior da seleção, então pra ela funcionar, a seleção deveria ter

pelo menos duas células.

Exemplo:

[ERRO] - Range("A1").Borders(xlInsideHorizontal).LineStyle = xlContinuous

[OK] - Range("A1:A2").Borders(xlInsideHorizontal).LineStyle = xlContinuous

Bom... Voltando ao seu código, consegui executá-lo sem problemas na minha máquina. (lógico que eu tive que colocar os parâmetros corretamente)

Mas todos nós sabemos que o excel é repleto de erros e falhas, e que estas falhas podem ser provenientes de conflitos no próprio código, então sugiro que tente detectar no seu código, algumas partes que possam ser melhoradas, mesmo que não tenham nenhuma ligação com esta função de formatar as bordas. Tente testar apenas o código que você postou aqui em uma pasta de trabalho em branco e veja se funciona normalmente.

Observações

*Use uma função pública, e não privada.

*Onde estão os parâmetros da sua função?

Fiz algumas melhorias on seu código, assim ele fica mais claro e menos repetitivo. Abaixo vai o código incluindo a função e um Sub Procedimento "Exemplo" que

chama a função:

Sub Exemplo()

Call borda_Espessa("Pasta1", "Plan1", "B2:C4")

End Sub

Public Function borda_Espessa(nome_arquivo As String, planilha As String, celulas As String)

Dim aux As Range

Set aux = Workbooks(nome_arquivo).Worksheets(planilha).Range(celulas)

aux.Borders(xlEdgeLeft).LineStyle = xlContinuous

aux.Borders(xlEdgeLeft).Weight = xlThick

aux.Borders(xlEdgeTop).LineStyle = xlContinuous

aux.Borders(xlEdgeTop).Weight = xlThick

aux.Borders(xlEdgeBottom).LineStyle = xlContinuous

aux.Borders(xlEdgeBottom).Weight = xlThick

aux.Borders(xlEdgeRight).LineStyle = xlContinuous

aux.Borders(xlEdgeRight).Weight = xlThick

End Function

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...