Jump to content
vbalexandre

Formatar caso seja Diferente de Vazio

Recommended Posts

vbalexandre

Boa noite!!

Estou usando Execel 2007...

Tenho o código abaixo que me ajuda a formatar umas células para valor: número e moeda.

O que eu quero é um código para adaptar a este de forma que:

tenho a Coluna "D" e "G", caso tenha valores DIFERENTE de vazio rodar o código abaixo, para formatar apenas as células com valores

a partir da Coluna "D" e "G".

Public Sub AlteraFormato()

Dim rngCelula As Range
For Each rngCelula In Selection
rngCelula.FormulaLocal = rngCelula.Value
Next rngCelula

End Sub

Muito..

Obrigado!!!!

Share this post


Link to post
Share on other sites
Edouardo

Utiliza

if(IsEmpty(Range("xx")) then ...

Além disso, poderá não ser uma célula "virgem", por isso inclui também uma verificação ao texto da célula:

if(Range("xx") = "") then...

cumps.

Share this post


Link to post
Share on other sites
vbalexandre

Boa noite!!

Neste código...

Dim rngCelula As Range

For Each rngCelula In Selection

rngCelula.FormulaLocal = rngCelula.Value

Next rngCelula

End Sub

não consegui inserir ..

nenhuma das duas opções...

if(IsEmpty(Range("xx")) then ...

if(Range("xx") = "") then...

Att..

Share this post


Link to post
Share on other sites
Edouardo

Com as condições mencionadas, a ideia seria esta:

CICLO A cada célula da coluna_X  FAZ
        SE Célula NÃO ESTÁ VAZIA
             EXECUTA CÓDIGO PARA FORMATAR ESSA CÉLULA
        FIM SE
FIM CICLO

if(IsEmpty(Range("xx")) then

(Onde tens xx troca pelo endereço da célula, como por exemplo "G1")

Share this post


Link to post
Share on other sites
vbalexandre

Boa noite!

Antes de eu responder já havia feito dessa forma os "xx" foram substituídos porém não houve efeito no meu código.o que houve de errado?

Abraços

Att.

Share this post


Link to post
Share on other sites
jpaulino

Estás a fazer isso mal.

Repara que quando fazer o "For Each rngCelula In Selection" já estás a dizer a variável rngCelula é do tipo Range. Assim, só precisas de verificar:

If rngCelula.Value <> "" Then

...

Pode usar um Offset para verificar a célula de baixo, do lado, de cima, etc.

Share this post


Link to post
Share on other sites
vbalexandre

Consegui desta forma...

Sub Deletar()

Dim i As Integer

i = 2

For i = 2 To 50 'quantidade de linhas que será verificado

If Plan1.Cells(i, 1).Value = "" Then 'sendo verdadeiro a afirmação acima verifica se a linha na coluna A é branco, se for executa a rotina abaixo apagando os conteudos ate a coluna L

For j = 1 To 12 'executa 1 vezes a rotina abaixo, ou seja coluna A até coluna L

Plan1.Cells(i, j).Value = "" 'sobrescreve o conteudo das celulas

Next j 'executa por 12 vezes

End If

Next i 'executa a quantidade de vezes definida no For i

End Sub

Abraços,

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.