Não limpa as fórmul...
 
Notifications
Clear all

Não limpa as fórmulas das células

5 Posts
3 Usuários
1 Likes
1,038 Visualizações
(@vonzuben)
Posts: 549
Honorable Member
Topic starter
 

Qual o motivo de não limpar as fórmulas das celulas da coluna D, quando coloco "Desligado" na célula A2 ?

Ver o código, bem semples de entender.

Obrigado desde já !

Este tópico foi modificado 3 anos atrás 2 vezes by vonzuben
 
Postado : 25/01/2021 1:38 pm
(@anderson)
Posts: 203
Reputable Member
 
Private Sub Worksheet_Change(ByVal Target As Range)


Application.ScreenUpdating = False

'On Error Resume Next

Dim i As Long
Dim Cota As Integer
Dim Plataformas As String
Dim Ativo As String

Plataformas = "profit"
Ativo = "petr4"

i = 2

While Cells(i, 5).Value = "Aberto"

With Cells(i, 4)

If Range("A2").Value = "Ligado" Then
Application.EnableEvents = False
'.FormulaR1C1 = "=IF(RC[-2]="""","""",IF(RC[-2]=""Aprovado"",10*100,IF(RC[-2]=""Reprovado"",10*200)))"
.FormulaR1C1 = "=IF(ISERROR(" & Plataformas & "|cot!" & Ativo & ".ult),""""," & Plataformas & "|cot!" & Ativo & ".ult)"
Application.EnableEvents = True
End If

If Range("A2").Value = "Desligado" Then
Application.EnableEvents = False
.Formula = ""
Application.EnableEvents = True
End If

End With

i = i + 1

Wend

Application.ScreenUpdating = True


End Sub

Em 90% dos casos em que não se anexa o arquivo, ocorrem mal-entendidos, gerando perda de tempo de ambos os lados.

 
Postado : 25/01/2021 2:26 pm
Mauro Coutinho
(@coutinho)
Posts: 95
Estimable Member
 

@vonzuben a rotina que está usando ela até que funciona, o que está acontecendo pelo o que pude perceber, é que está utilizando a Instrução While...Wend onde ela está obedecendo a condição estipulada :

While Cells(i, 5).Value = "Aberto" ou seja, só continuar enquanto o conteúdo das celulas na coluna 5 for igual a "Aberto", então ela termina a verificação e sai da rotina ao encontrar nas celulas qualquer coisa diferente de "Aberto" e isso ocorre porque temos em algumas celulas o conteúdo "Concluido"

Se a verificção for só nessas 3 linhas eu faria diferente, mas vou aguardar seu retorno se conseguiu ajustar com a o exemplo do Anderson, que pelo que vi segue a mesma condição.

[]s

Mauro Coutinho

 
Postado : 25/01/2021 7:04 pm
vonzuben reacted
(@anderson)
Posts: 203
Reputable Member
 
Private Sub Worksheet_Change(ByVal Target As Range)


Application.ScreenUpdating = False

'On Error Resume Next

Dim i As Long
Dim Cota As Integer
Dim Plataformas As String
Dim Ativo As String

Plataformas = "profit"
Ativo = "petr4"

i = 2

While Cells(i, 1).Value <> ""

With Cells(i, 4)

if cells(i,5).value = "Aberto" then
If Range("A2").Value = "Ligado" Then
Application.EnableEvents = False
'.FormulaR1C1 = "=IF(RC[-2]="""","""",IF(RC[-2]=""Aprovado"",10*100,IF(RC[-2]=""Reprovado"",10*200)))"
.FormulaR1C1 = "=IF(ISERROR(" & Plataformas & "|cot!" & Ativo & ".ult),""""," & Plataformas & "|cot!" & Ativo & ".ult)"
Application.EnableEvents = True
End If

If Range("A2").Value = "Desligado" Then
Application.EnableEvents = False
.Formula = ""
Application.EnableEvents = True
End If

end if
End With

i = i + 1

Wend

Application.ScreenUpdating = True


End Sub

Em 90% dos casos em que não se anexa o arquivo, ocorrem mal-entendidos, gerando perda de tempo de ambos os lados.

 
Postado : 25/01/2021 8:49 pm
(@vonzuben)
Posts: 549
Honorable Member
Topic starter
 

@coutinho
Vai ter várias linhas 
Coloquei 3 para exemplo
Deu certo !

 
Postado : 26/01/2021 7:33 am