Fórum Excel Bácico, Avançado e Vba

Este fórum é destina a usuário de Excel, que queiram compartilhar informações a básicas, avançadas e programação em VBA...
 
InícioInício  FAQFAQ  BuscarBuscar  MembrosMembros  GruposGrupos  Registrar-seRegistrar-se  Login  

Compartilhe | 
 

 Worksheet function

Ver o tópico anterior Ver o tópico seguinte Ir em baixo 
AutorMensagem
jeversong2014



Mensagens : 13
Data de inscrição : 29/04/2014
Idade : 24

MensagemAssunto: Worksheet function   Sex Out 31, 2014 7:11 pm

Caros,
boa tarde, gostaria de uma ajuda no VBA, preciso colocar esse formula na minha macro:

=SE(NÚM.CARACT(D2)=1;"00";SE(NÚM.CARACT(D2)=2;"0";""))&D2

essa formula deve ser usada a partir da célula "L2" e aplicada as demais. Abaixo tentei o seguinte, mas deu erro:

i = 2
   While plan1.Cells(i, 1) <> ""
       CH = WorksheetFunction.IF(Len(plan1.Cells(i, 4)) = 1, "00", _
       WorksheetFunction.IF(Len(plan1.Cells(i, 4)) = 2, "0", "")) & plan1.Cells(i, 4)
       plan1.Cells(i, 12) = CH
   i = i + 1
   Wend

Desde já agradeço a quem conseguir ou pelo menos quem tentar  Very Happy
Voltar ao Topo Ir em baixo
Ver perfil do usuário
alexandrevba



Mensagens : 1820
Data de inscrição : 13/07/2011
Localização : Serra - ES

MensagemAssunto: Re: Worksheet function   Sab Nov 01, 2014 1:03 am

Boa noite!!

Tente assim...
Código:
Option Explicit
 
Sub Fill_Formulas()
    Dim lastrow As Long
    lastrow = Cells(Rows.Count, "D").End(xlUp).Row
    Application.ScreenUpdating = False
        Range("L2").Formula = "=IF(LEN(D2)=1,""00"",IF(LEN(D2)=2,""0"",""""))&D2"
        Range("L2").AutoFill Destination:=Range("L2:L" & lastrow)
        Range("L2:L" & lastrow).Value = Range("L2:L" & lastrow).Value
    Application.ScreenUpdating = True
End Sub

Att
Voltar ao Topo Ir em baixo
Ver perfil do usuário
jeversong2014



Mensagens : 13
Data de inscrição : 29/04/2014
Idade : 24

MensagemAssunto: Re: Worksheet function   Seg Nov 03, 2014 3:10 pm

bom dia,

utilizo essa formula para fazer com que os valores da celulas da coluna "D" tenham sempre 3 digitos, sendo que serão sempre numeros, por isso coloco os zeros a esquerda.
executando a sub até o ponto abaixo funciona, traz o resultado que eu queria.

Código:
Sub Fill_Formulas()
    Dim lastrow As Long
    lastrow = Cells(Rows.Count, "D").End(xlUp).Row
    Application.ScreenUpdating = False
        Range("L2").Formula = "=IF(LEN(D2)=1,""00"",IF(LEN(D2)=2,""0"",""""))&D2"
        Range("L2").AutoFill Destination:=Range("L2:L" & lastrow)

mas quando é executada essa parte, é retirado novamente os zeros a esquerda, ou seja, retorna acaba anulando a formula em si.

Código:
Range("L2:L" & lastrow).Value = Range("L2:L" & lastrow).Value

mas valeu pela dica, ajudou.,apenas fiz a observação para que se alguém também queira usar essa sub retire essa parte.

abraço!
Voltar ao Topo Ir em baixo
Ver perfil do usuário
alexandrevba



Mensagens : 1820
Data de inscrição : 13/07/2011
Localização : Serra - ES

MensagemAssunto: Re: Worksheet function   Seg Nov 03, 2014 4:13 pm

Bom dia!!

Obrigado pelo retorno!!


Att Smile
Voltar ao Topo Ir em baixo
Ver perfil do usuário
Conteúdo patrocinado




MensagemAssunto: Re: Worksheet function   Hoje à(s) 5:44 pm

Voltar ao Topo Ir em baixo
 
Worksheet function
Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo 
Página 1 de 1

Permissão deste fórum:Você não pode responder aos tópicos neste fórum
Fórum Excel Bácico, Avançado e Vba :: Avançado/VBA :: Excel Avançado/VBA-
Ir para: