Notifications
Clear all

Troca de formula por vazio

22 Posts
4 Usuários
0 Reactions
2,592 Visualizações
(@vonzuben)
Posts: 549
Honorable Member
Topic starter
 

Bom dia !
Erro no Value RANGE C2, pois seria concatenar ?

Private Sub Worksheet_Change(ByVal Target As Range)

Application.EnableEvents = False
Application.ScreenUpdating = False

If Range("C1").Value = "ON" Then
    Worksheets("Plan2").Range("C2").Value = "=RTD("empresa.rtd";;B2;$C$1)"
End If
If Range("C1").Value = "OFF" Then
    Worksheets("Plan2").Range("C2").Value = ""
End If

Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub

Obrigado desde já !

 
Postado : 04/09/2016 6:03 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Um tanto quanto lacônica sua demanda.
Tentando adivinhar,
Pretende incluir uma formula na celula C2 da plan2? -->Então é melhor se referir à Formula e não valor -->Troque .Value por .Formula ou .FormulaLocal.
a diferenca e que a primeira as funções devem ser escritas com sua nomenclatura em ingles; e a segunda na linguagem do sistema em uso (meu caso portugues)
Se os valores de B2 e/ou C1 referem-se a Plan2 tudo bem, caso contrario deve referenciar a planilha de origem "Plan1"...

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 04/09/2016 7:06 am
(@vonzuben)
Posts: 549
Honorable Member
Topic starter
 

O código e ON e OFF está na plan1, por isso quero inserir na plan2 Worksheets("Plan2")
Se coloco ON na plan1, na celula C2 na plan2 vai ser =RTD("empresa.rtd";;B2;$C$1), se for OFF vai ser vazio, onde que posso depois digitar manualmente

 
Postado : 04/09/2016 7:26 am
(@vonzuben)
Posts: 549
Honorable Member
Topic starter
 

Coloquei, mas essa linha está em vermelho
Worksheets("Plan2").Range("C2").FormulaLocal = "=RTD("empresa.rtd";;B2;$C$1)"

Private Sub Worksheet_Change(ByVal Target As Range)

Application.EnableEvents = False
Application.ScreenUpdating = False

If Range("C1").Value = "ON" Then
    Worksheets("Plan2").Range("C2").FormulaLocal = "=RTD("empresa.rtd";;B2;$C$1)"
End If

If Range("C1").Value = "OFF" Then
    Worksheets("Plan2").Range("C2").Value = ""
End If

Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
 
Postado : 04/09/2016 10:21 am
(@osvaldomp)
Posts: 857
Prominent Member
 

"=RTD(""empresa.rtd"";;B2;$C$1)"

Osvaldo

 
Postado : 04/09/2016 11:23 am
(@vonzuben)
Posts: 549
Honorable Member
Topic starter
 

Não apareceu na celula na C2

 
Postado : 04/09/2016 2:34 pm
(@osvaldomp)
Posts: 857
Prominent Member
 

Não apareceu na celula na C2

O problema é aí com você. :?:

Aqui testei no arquivo que você postou com a alteração que eu sugeri e voilá... ;)

Osvaldo

 
Postado : 04/09/2016 6:01 pm
(@vonzuben)
Posts: 549
Honorable Member
Topic starter
 

Estou com 2007, será por isso ?
anexa o seu aqui !

 
Postado : 04/09/2016 9:52 pm
(@vonzuben)
Posts: 549
Honorable Member
Topic starter
 

Depois que fechei e abri o excel novamente deu certo

 
Postado : 04/09/2016 9:58 pm
(@vonzuben)
Posts: 549
Honorable Member
Topic starter
 

Acrescentei o SE, pois deu linha amarela, pode ser as aspas ou ponto e virgula o erro ?

"=SE(B2=0;"";RTD(""empresa.rtd"";;B2;$C$1))"
 
Postado : 05/09/2016 8:10 am
(@osvaldomp)
Posts: 857
Prominent Member
 
"=SE(B2=0;"""";RTD(""empresa.rtd"";;B2;$C$1))"

abaixo uma versão simplificada do seu código

Private Sub Worksheet_Change(ByVal Target As Range)
 If Target.Address <> "$C$1" Then Exit Sub
  If Target.Value = "ON" Then
   Sheets("Plan2").Range("C2").FormulaLocal = "=SE(B2=0;"""";RTD(""empresa.rtd"";;B2;$C$1))"
  ElseIf Target.Value = "OFF" Then
    Sheets("Plan2").Range("C2").Value = ""
  End If
End Sub

Osvaldo

 
Postado : 05/09/2016 8:32 am
(@vonzuben)
Posts: 549
Honorable Member
Topic starter
 

Pq quando troco o nome na plan2 na celula A2 não funciona ? Sempre chama o formulaLocal da Empresa B

Obrigado desde já !

 
Postado : 06/09/2016 4:27 am
DJunqueira
(@djunqueira)
Posts: 772
Prominent Member
 

Poderia usar Chr(34) p/ aspas.

Se sua dúvida foi respondida marque o tópico como RESOLVIDO usando o botão com marca verde.

 
Postado : 06/09/2016 4:53 am
(@osvaldomp)
Posts: 857
Prominent Member
 

Pq quando troco o nome na plan2 na celula A2 não funciona ? Sempre chama o formulaLocal da Empresa B

Isso ocorre porque as fórmulas que você elaborou não consideram o conteúdo de 'A2' da 'Plan2'. As suas fórmulas chamam a Empresa A ou a Empresa B em função do conteúdo de 'C1' da 'Plan1' (ON/OFF), lembra disso? :)

Sugestão - inclua a condição ON/OFF na sua fórmula para chamar a Empresa A ou a B, assim você terá somente uma fórmula e não precisará de macro para inseri-la ;)

Osvaldo

 
Postado : 06/09/2016 6:42 am
(@vonzuben)
Posts: 549
Honorable Member
Topic starter
 

Então Osvaldo, o macro tenho que ter, se não eu não consigo inserir manualmente quando coloco em OFF

Entendeu ?

Se ON, entra a Formula e se OFF deixa vazio para eu digitar manualmente

 
Postado : 06/09/2016 8:45 am
Página 1 / 2