Macro que salva planilha

criei uma macro para salvar uma planilha ( no caso é a primeira planilha do arquivo) como txt(csv), quando fui ver a macro, descobri q ela escreve o valor " 1 " para saber qual planilha ela deve salvar… troquei esse valor por 2 e vi q ela salva a segunda planilha do meu arquivo.

tem a possibilidade de colocar esse valor numa celula e fazer a macro buscar la? tipo na planilha1 celula: A1 digitar o valor 2 e ela salvar a segunda planilha…

O Antônio @Grafeno me ajudou muito com uma questão semelhante, mas era pra buscar o nome do arquivo a ser salvo numa célula…, tentei aplicar o mesmo conceito mas da erro,

Olá a todos! Estou precisando de ajuda com algo parecido porém o que eu preciso é salvar o arquivo todo, ou seja, todas as planilhas de um mesmo arquivo. Alguém poderia me ajudar com essa dúvida?

@Juan.rba,

Não sei exatamente como você tentou 'aplicar o mesmo conceito" da outra questão, mas é possível que o erro esteja no fato de você estar recuperando um texto (string) da célula e tetando atribui-lo a uma propriedade que pede um valor (value).

Portanto, assumindo que o número esteja na célula A1 de sua planilha “editor”, o valor da célula deve ser obtido desta forma:

NumeroPlanilha = editor.getCellRangeByName("A1").Value

E, em seguida, passado ao argumento assim:

args1(0).Value = NumeroPlanilha

Atte,
Grafeno

@Grafeno,

muito obrigado, funcionou muito bem!

Olá!
Segue um exemplo para salvar como planilha.
Adapte o seu código para salvar como um arquivo texto.

`REM  *****  BASIC  *****
'cria planilha com nome na célula A1
Sub Main
Dim Doc As Object
Dim Sheet As Object
Dim i as Integer
Dim nome as String
Doc = ThisComponent
Sheet = Doc.Sheets(0)
nome = Sheet.GetCellByPosition(0,0).string
'O exemplo acima referencia a primeira célula A1.
'Se fosse para gerar 5 planilhas semelhantes
'for i = 1 to 5
'nome = "Planilha"&i
If Doc.Sheets.hasByName(nome) Then
Sheet = Doc.Sheets.getByName(nome)
else
Sheet = Doc.createInstance("com.sun.star.sheet.Spreadsheet")
Doc.Sheets.insertByName(nome, Sheet)
End If
'Next
End Sub`

muito obrigado amigo, funcionou muito bem!