Ir ao conteúdo
  • Cadastre-se

Macro Validação Celula


Posts recomendados

Boa tarde!

 

Seguinte pessoal, tenho uma planilha que tem uma macro que salva automaticamente com o nome de uma celula específica.

 

Problema: quando há caracteres especiais como "/" ele acaba criando pastas automáticas porque considera um caminho. Já que em nome de arquivos não é permitido caracteres especiais.

 

Possivel solução/duvida: pensei em fazer uma macro que valide a celula que coloco o nome, proibindo caracteres especiais sejam escritos nela. Alguém sabe como?

 

Abração!

Link para o comentário
Compartilhar em outros sites

Caro PMantis13...

 

Também não pensei em um gatilho. Mas quem sabe uma outra celula que puxe a macro como uma função enviando a referência da celula que tem que ser validada.

 

For example: =validar_nome(2,2) referênte a C3.

 

Cada vez que tiver uma alteração na planilha, ela recalcula as celulas não é? Então ela ativara a função/macro?

 

Ou quem sabe eu coloco essa validação antes do parte da macro que salva e uma sentença para que se tiver ok prossiga, se não mostra um aviso e não continua.

 

Opinião? Abraços.

 

Segue a macro que salva a planilha:

 

sub SALVA_NO_REPR
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

Dim oMovPasta as Object
Dim oPasta as Object
Dim oDocumento as Object
dim oRepr as object
dim oProduto as object
dim oCliente as object
dim dia, mes, ano as object
dim oData as string

oDocumento = ThisComponent
oPasta = oDocumento.Sheets
oMovPasta = oPasta(0)
oRepr = oMovPasta.GetCellByPosition(4,1)
oProduto = oMovPasta.GetCellByPosition(2,2)
oCliente = oMovPasta.GetCellByPosition(2,0)
dia = oMovPasta.GetCellByPosition(7,4)
mes = oMovPasta.GetCellByPosition(7,5)
ano = oMovPasta.GetCellByPosition(7,6)
oData = dia.STRING & mes.STRING & ano.STRING

rem ----------------------------------------------------------------------
dim args1(1) as new com.sun.star.beans.PropertyValue
args1(0).Name = "URL"
args1(0).Value = "file:///B:/Diretoria/Comuns/CUSTOS%20MATRIZ/ULTIMAS%20POR%20REPRESENTANTE/"& oRepr.string &"/"& oProduto.string &" "& oCliente.string &" "& oData &".ods"
args1(1).Name = "FilterName"
args1(1).Value = "calc8"

dispatcher.executeDispatch(document, ".uno:SaveAs", "", 0, args1())


end sub

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...