Criando um combo de Validação de Dados via Macro VBA
Enviado: 26 Jan 2017 às 08:48
Olá amigos,
Estou criando uma daquelas listas combobox via VBA mas embora a fórmula esteja correta o Excel insiste em dizer que não e rejeita a criação. Será que quando isso é feito por VBA muda alguma coisa na sintaxe da fórmula?
O texto da minha macro é:
Sub Macro1()
'Quando a fórmula INDIRETO é inserida manualmente na caixa de diálogo "Validação de Dados"
'o Excel aceita a fórmula, mas quando isso é feito por VBA é rejeitado.
'Mesmo tendo sido gravado pelo próprio gravador de Macros é rejeitado.
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=INDIRETO($B$3)"
'Pergunta: que ajuste precisa ser feito nessa fórmula para que o Excel aceite a criação via VBA?
End With
End Sub
Se vc copiar e colar apenas a fórmula =INDIRETO($B$3) manualmente para a tela de validação verá q o Excel aceita.
Então, o que eu preciso mudar no código para que eu consiga criar através do VBA?
O arquivo de exemplo está anexado.
A célula vermelha tem que ficar como a célula amarela, sendo q a amarela foi criada manualmente e o código VBA serve para criar a célula vermelha.
Me ajudem por favor!
Estou criando uma daquelas listas combobox via VBA mas embora a fórmula esteja correta o Excel insiste em dizer que não e rejeita a criação. Será que quando isso é feito por VBA muda alguma coisa na sintaxe da fórmula?
O texto da minha macro é:
Sub Macro1()
'Quando a fórmula INDIRETO é inserida manualmente na caixa de diálogo "Validação de Dados"
'o Excel aceita a fórmula, mas quando isso é feito por VBA é rejeitado.
'Mesmo tendo sido gravado pelo próprio gravador de Macros é rejeitado.
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=INDIRETO($B$3)"
'Pergunta: que ajuste precisa ser feito nessa fórmula para que o Excel aceite a criação via VBA?
End With
End Sub
Se vc copiar e colar apenas a fórmula =INDIRETO($B$3) manualmente para a tela de validação verá q o Excel aceita.
Então, o que eu preciso mudar no código para que eu consiga criar através do VBA?
O arquivo de exemplo está anexado.
A célula vermelha tem que ficar como a célula amarela, sendo q a amarela foi criada manualmente e o código VBA serve para criar a célula vermelha.
Me ajudem por favor!