Notifications
Clear all

Passar Fórmulas para VB

9 Posts
3 Usuários
0 Reactions
1,669 Visualizações
(@luislapa)
Posts: 49
Trusted Member
Topic starter
 

Boa tarde pessoal,
Tenho umas fórmulas nas células e gostaria de passar para VBA, só não sei como fazer:

--------------------------------
1º) Caso tenha valor na coluna A, a partir da célula A5, na coluna U, a partir da célula U5 se aplica a formula abaixo, até a ultima célula com valor da coluna A, mas deve mudar também as células conforme a linha.

Célula U5 = SE(É.NÃO.TEXTO(ESQUERDA(T5;PESQUISAR("-";T5)-2))=VERDADEIRO;"";(ESQUERDA(T5;PESQUISAR("-";T5)-2)))

Célula U6 = SE(É.NÃO.TEXTO(ESQUERDA(T6;PESQUISAR("-";T6)-2))=VERDADEIRO;"";(ESQUERDA(T6;PESQUISAR("-";T6)-2)))

E assim em diante...

---------------------

2º) Calulo a partir da coluna X5.

Caso tenha valor na coluna A, a partir da célula A5, na Coluna X, a partir da célula X5 se faz o calculo por linha, mas deve mudar também as células conforme a linha.

Célula X5 = C5*W5
...

Abraços

 
Postado : 11/04/2014 9:39 am
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

luislapa,

Boa Tarde!

Para utilizar uma fórmula no VBA (do mesmo jeito que ela está na própria interface do Excel) você pode utilizar o comando abaixo (supondo que a fórmula deve ser inserida na célula D6, por exemplo):

Range ("D6").FormulaLocal = "= SE(É.NÃO.TEXTO(ESQUERDA(T5;PESQUISAR("-";T5)-2))=VERDADEIRO;"";(ESQUERDA(T5;PESQUISAR("-";T5)-2)))"

Todavia, para melhor ajudá-lo, é interessante que você compacte seu arquivo (ZIP) e anexo o mesmo aqui.

 
Postado : 11/04/2014 10:01 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Wargner, você esqueceu das aspas.

Sub teste()
Range("D6").FormulaLocal = "= SE(É.NÃO.TEXTO(ESQUERDA(T5;PESQUISAR("" - "";T5)-2))=VERDADEIRO;"""";(ESQUERDA(T5;PESQUISAR("" - "";T5)-2)))"
End Sub

Att

 
Postado : 11/04/2014 10:05 am
(@luislapa)
Posts: 49
Trusted Member
Topic starter
 

Legal amigo,

Mas teria como só aparecer o resultado e o resultado?

Este resultado é por linha, então gostaria que tivesse o critério, se tiver preenchido a célula na coluna A ele faz o calculo para o resultado.

Então, se a linha na coluna A20 tiver preenchido, o resultado que deveria apresentar é referente a Formula: Célula U20 = SE(É.NÃO.TEXTO(ESQUERDA(T20;PESQUISAR("-";T20)-2))=VERDADEIRO;"";(ESQUERDA(T20;PESQUISAR("-";T20)-2)))

Se na coluna A25 tiver preenchido, o resultado que deveria apresentar é referente a Formula: Célula U25 = SE(É.NÃO.TEXTO(ESQUERDA(T25;PESQUISAR("-";T25)-2))=VERDADEIRO;"";(ESQUERDA(T25;PESQUISAR("-";T25)-2)))

E assim sucessivamente.

Vlw e desculpe se não deixei de forma clara.

Abraços.

 
Postado : 11/04/2014 11:19 am
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

Isso mesmo Alexandre. Obrigado!

luislapa,

Volto a insistir: compacte e poste sua planilha. Assim todos vão poder lhe ajudar de forma mais rápida e eficiente.

 
Postado : 11/04/2014 11:47 am
(@luislapa)
Posts: 49
Trusted Member
Topic starter
 

Boa tarde Amigo,

Segue o arquivo conforme solicitado.

abraços.

 
Postado : 11/04/2014 2:10 pm
(@luislapa)
Posts: 49
Trusted Member
Topic starter
 

Olá pessoal.

Foi possível abrir o arquivo?

Abs

 
Postado : 14/04/2014 5:46 am
(@luislapa)
Posts: 49
Trusted Member
Topic starter
 

Olá pessoal,

Como posso compiar o texto a esqueda do traço?

Abs

 
Postado : 14/04/2014 9:57 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Teste

Sub separa()
Dim x As Integer, myVar
    With Sheets("Entrada")
        For x = 5 To .Cells(Cells.Rows.Count, "A").End(xlUp).Row
            If .Cells(x, "A") <> "" Then
            myVar = Split(.Cells(x, "T"), "-")
            .Cells(x, "U") = myVar(0)
            End If
        Next
    End With
End Sub
 
Postado : 14/04/2014 1:24 pm