Ir ao conteúdo
  • Cadastre-se
Renildo

Formatar fonte usando vba no excel

Recommended Posts

Boa tarde!

 

Estou precisando formatar o tamanho da fonte de determinadas células, de acordo com os dados inseridos em outra célula, e não tenho a opção de formatação condicional para o tamanho.

 

Consegui criar este código, porém não funciona. Alguém pode me ajudar?

 

Segue o código:

Sub FormataFonte()

If Range("AR144").Value = 1 Then
Range("D9,D29").Font.Size = 14
Range("D17,D25,D33,D41,D49,D57,D65").Font.Size = 8

Else: Range("AR144").Value = 2
Range("D29").Font.Size = 8
Range("D9,D17,D25,D33,D41,D49,D57,D65").Font.Size = 14
End If

End Sub

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
6 horas atrás, Renildo disse:

 

Estou precisando formatar o tamanho da fonte de determinadas células,

Quais células? Você precisa fornecer o endereço delas.

São os endereços que estão no código?

 

de acordo com os dados inseridos em outra célula,

Qual outra célula ? Idem, idem.

 

Consegui criar este código, porém não funciona.

O código funciona, talvez o resultado é que não está batendo com o que você deseja.

Qual o resultado que você deseja?

 

 

 

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi Osvaldo! Valeu pelo retorno.

 

Deixa eu ver se consigo ser mais claro:

 

Todas células de D9 a D65 tem a fonte tamanho 8, porém, se na célula AR144 o valor for 1, apenas as células D9 e D29 devem ter o tamanho da fonte aumentado para 14 e quando eu mudar o valor da célula AR144 para 2, apenas as células D9, D17, D25, D33, D41, D49, D57 e D65, devem ter a fonte aumentada para o tamanho 14.

 

A célula AR144 é "a outra", e varia apenas entre esses dois valores.

 

Quando apliquei o código, funcionou apenas para a primeira condição, quando AR144=1. Quando mudei pra dois não aconteceu nada.

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, Renildo.

Veja se atende.

Sub FormataFonteV2()
 Range("D9:D65").Font.Size = 8
 If Range("AR144").Value = 1 Then
  Range("D9,D29").Font.Size = 14
 ElseIf Range("AR144").Value = 2 Then
  Range("D9,D17,D25,D33,D41,D49,D57,D65").Font.Size = 14
 End If
End Sub

 

Se você quiser experimentar a opção abaixo, a diferença para o código acima é que este código é disparado automaticamente ao alterar o valor em 'AR144'.

Instale o código abaixo no módulo da planilha, assim:
1. copie o código daqui
2. clique com o direito na guia da planilha de interesse e escolha 'Exibir código'
3. cole o código na janela em branco que vai se abrir
4. feito! 'Alt+Q' para retornar para a planilha e testar

Private Sub Worksheet_Change(ByVal Target As Range)
 If Target.Address <> "$AR$144" Then Exit Sub
 Range("D9:D65").Font.Size = 8
 If Target.Value = 1 Then
  Range("D9,D29").Font.Size = 14
 ElseIf Target.Value = 2 Then
  Range("D9,D17,D25,D33,D41,D49,D57,D65").Font.Size = 14
 End If
End Sub

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi, Osvaldo! Muito obrigado! Funcionou, mas eu queria que funcionasse de outro jeito: ao invés de digitar o valor na célula AR144, esse valor aparecesse como vínculo de uma caixa de combinação.

 

Com o código eu consigo as células formatadas apenas quando digito o valor 1 ou 2, quando o resultado vem automaticamente a formatação simplesmente não acontece.

 

Valeu pela atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites
40 minutos atrás, Renildo disse:

Funcionou, mas eu queria que funcionasse de outro jeito: ao invés de digitar o valor na célula AR144, esse valor aparecesse como vínculo de uma caixa de combinação.

 

 

 

Com base no seu comentário acima me parece que você está se referindo ao segundo código que postei.

Se sim, experimente o código abaixo no lugar.

Se não obtiver o resultado esperado sugiro que você disponibilize uma amostra do seu arquivo.

Private Sub Worksheet_Calculate()
 Range("D9:D65").Font.Size = 8
 If Range("AR144").Value = 1 Then
  Range("D9,D29").Font.Size = 14
 ElseIf Range("AR144").Value = 2 Then
  Range("D9,D17,D25,D33,D41,D49,D57,D65").Font.Size = 14
 End If
End Sub

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi Osvaldo. Bom dia.

 

Primeiramente desculpa a demora pra dar o retorno. O código funcionou sim! Muito obrigado!

 

A única coisa que precisei alterar foi inserir duas linhas para proteger e desproteger a planilha na execução dele, pois eu pretendo utilizar uma planilha bloqueada.

 

Estou elaborando uma planilha para a próxima temporada da NFL! :)

 

Valeu pela tua ajuda e um abraço!

  • 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

×