Notifications
Clear all

Substituir Fórmula =($D$1-Q5) &"" por VBA

20 Posts
4 Usuários
5 Reactions
1,976 Visualizações
(@jcgmcs)
Posts: 0
New Member
Topic starter
 

Olá boa tde..

Ajuda.. no Excel 2007

Na celula "D1" que é fixa, insiro uma Data Inicial qualquer e na coluna "Q" apartir da Linha 5, insiro a Data Final me retornando a contagem dos dias decorrentes em "P".

OBs: Na coluna "P" apartir da linha 5 tenho essa fórmula =($D$1-Q5) &"" que vae até à "P3000" 

Preciso que linhas da coluna "P" sejem preenchidas e atualizadas por VBA sempre que "D1" for alterado.

 

Obg.

Att, Carlos

 
Postado : 23/07/2020 2:48 pm
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

Carlos,

Bom dia!

Creio que você não precise de VBA para isso. Se as células da coluna P já possuem a fórmula e se a data da célula D1 for alterada, obviamente, as fórmulas atualizarão a contagem dos dias da coluna P. Estou correto?

 
Postado : 24/07/2020 7:54 am
(@jcgmcs)
Posts: 0
New Member
Topic starter
 

Bom dia..

Wagner preciso sim deste vba para outros objetivos...

 
Postado : 24/07/2020 8:19 am
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

@jcgmcs,

 

Boa noite!

Nesse caso, basta fazer assim:

For i = 5 to 3000

     Range("P" & i).FormulaLocal = "=($D$1-Q" & i & ") &""

Next i
 
Postado : 24/07/2020 7:07 pm
(@jcgmcs)
Posts: 0
New Member
Topic starter
 

Wagner boa tde..

Onde coloco o código, pois coloquei assim na Plan1(Teste) e está dando erro de definição de aplicativo ou de objeto.. Erro '1004'

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

For i = 5 To 3000

Range("P" & i).FormulaLocal = "=($D$1-Q" & i & ") &"""

Next i

End sub

Editado pela Moderação. Motivo: Utilize o botão Código (< >) para inserir código VBA ou Fórmulas.

 
Postado : 25/07/2020 2:14 pm
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

Carlos,

Nesse caso, a resposta é bem diferente. Inclusive, para utilizar com fórmula (como você quer) temos que utilizar um artifício para poder dar certo. No caso, estou usando esse artifício na célula G1 mas você pode usar qualquer outra célula vazia para isso. Basta alterar o código abaixo e substituir onde tem G1 para a célula que quiser. Na suposição que fiz, inserir apenas um espaço em branco em G1 e concatenei com a sua fórmula.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Long

Application.EnableEvents = False

If Target.Count > 1 Then
Application.EnableEvents = True
Exit Sub
End If

If Target.Address(False, False) = "D1" Then
For i = 5 To 3000
Range("P" & i).FormulaLocal = "=($D$1 - Q" & i & ") & G1"
Next i
End If
Application.EnableEvents = True
End Sub
 
Postado : 26/07/2020 11:03 am
(@jcgmcs)
Posts: 0
New Member
Topic starter
 

Wagner bom dia..

Não entendi qdo vc disse que quero utilizar com essa formula: =($D$1-Q5) &""  ??

Eu quero é eliminar essa formula da coluna "P" e utilizar somente o código pra essa função.

Msm assim, fiz um teste com seu código e nada mudou ou aconteceu ao executá-lo...

Mas tdo bem, vamos esquecer essa formula =($D$1-Q5) &"" e vou simplificar...

Eu preciso de um código que subtraia e me retorne a contagem de dias na coluna "P". isso sempre que eu colocar apartir da linha 5 na coluna "Q" uma data qualquer, e assim, sendo tbém na "D1" colocando uma data qualquer... tdeu..

Obg..

 

 
Postado : 26/07/2020 12:21 pm
(@weslei-r)
Posts: 0
New Member
 

@jcgmcs Boa noite, tudo bem?
O código que você precisa, seria algo assim?

Sub CalculoDatas()
Dim datainicial As Date
Dim i As Integer
datainicial = Cells(1, 4)
Application.ScreenUpdating = False
For i = 5 To 3000
Cells(i, 16) = datainicial - Cells(i, 17)
Next i
Application.ScreenUpdating = False
MsgBox "Processamento Finalizado"
End Sub

Editado pela Moderação. Motivo: Utilize o botão Código (< >) para inserir código VBA ou Fórmulas.

 
Postado : 26/07/2020 8:33 pm
jcgmcs reacted
(@jcgmcs)
Posts: 0
New Member
Topic starter
 

@weslei-r Boa noite amigo..

Testei aki e ainda não foi o resultado esperado..

Primeiro que preciso do processo seje automático sempre que alterar data da "D1" ou da coluna "Q"

Na coluna "P" foi preenchida com este valor "44036" tdas as celulas até a linha 3000. Quero apenas onde for celula preenchida com a data que eu desejar tdeu..

OBs: Haverá celulas que por algum tempo permanecerão sem datas, então preciso que estas se mantém em branco ok!

Obg..

 
Postado : 26/07/2020 10:57 pm
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

@jcgmcs,

Se você tivesse explicado desde o começo da forma que explicou por último, não teriam tantas respostas erradas. Já pensou nisso? Procure explicar as suas necessidades de ajuda de forma simples e objetiva amigo. Cada vez que você explica o código tem que ser diferente pois em programação os mínimos detalhes são importantes.

Segue novo código.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Long

Application.EnableEvents = False

If Target.Count > 1 Then
Application.EnableEvents = True
Exit Sub
End If

If Target.Address(False, False) = "D1" Then
For i = 5 To 3000
Range("P" & i).Value = CDate(Range("D1").Value) - CDate(Range("Q" & i).Value)
Next i
ElseIf Target.Column = 17 And Target.Row > 4 Then
Range("P" & Target.Row).Value = CDate(Range("D1").Value) - CDate(Range("Q" & Target.Row).Value)
End If

Application.EnableEvents = True
End Sub
 
Postado : 27/07/2020 7:40 am
jcgmcs reacted
(@jcgmcs)
Posts: 0
New Member
Topic starter
 

@wagner bom dia..

Desculpe se falhei na clareza se assim for... Rss

Seu código agora funcionou.. mas ainda há um porém... Na coluna "P", onde celulas estão em branco, está exibindo este valor "44039" até a linha 3000. Gostaria de que, onde não há dados continuassem em branco até q for digitado uma data tdeu...

Uma outra Obs.. Minha coluna "Q" está formatada para dd/mm/aa ou seja, dia de hoje digito 27/07/20 mas na barra de formulas e em várias celulas estão exibindo 27/07/2020 e isso está me causando transtornos qdo faço uma pesquisa no Combobox.. se digito na pesquisa: 27/07/20 ele me trás uma lista, se digito: 27/07/2020 ele me trás uma outra lista tdeu... Tem como corrigir isso..?

Obg Wagner e ótima semana..

 
Postado : 27/07/2020 9:53 am
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

@jcgmcs

 

Acredito que no arquivo anexo os problemas estão corrigidos.

 
Postado : 27/07/2020 12:24 pm
jcgmcs reacted
(@jcgmcs)
Posts: 0
New Member
Topic starter
 

Obg Wagner.. assim q possível verei aki.. Abç..

 
Postado : 27/07/2020 12:38 pm
(@jcgmcs)
Posts: 0
New Member
Topic starter
 

Boa noite Wagner...

Ficou ótimo! Poré ainda tenho esse questão da formatação da coluna..

Minha coluna "Q" está formatada para dd/mm/aa ou seja, dia de hoje digito 27/07/20 mas na barra de formulas e em várias celulas estão exibindo 27/07/2020 e isso está me causando transtornos qdo faço uma pesquisa no Combobox ou até msm digitando diretamente na celula.. se digito na pesquisa: 27/07/20 ele me trás uma lista, se digito: 27/07/2020 ele me trás uma outra lista tdeu... Tem como corrigir isso..?

 
Postado : 27/07/2020 8:47 pm
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

@jcgmcs,

Aí eu já não sei dizer como você resolver pois, como você pode verificar no arquivo que enviei, a minha formatação como dd/mm/aa, está correta. 27/07/20 não sai como 27/07/2020. Pelo menos aqui na minha máquina, com o meu Excel 2007 está corretíssimo. Veja imagem abaixo.

 
Postado : 28/07/2020 7:24 am
Página 1 / 2