Em 28 de novembro de 2011 16:47, sp24horas <[email protected]> escreveu:

> Olá !
> Como não sei do seu nível de programação, vou tentar ajudar um pouco:
> Crie uma macro no Calc, e insira o código abaixo.
>
> REM  *****  BASIC  *****
> REM  *** criado por sp24horas
> REM  *** COMO RENOMEAR PLANILHAS A PARTIR DA CELULA a1
> Sub Main
> Dim Doc, Sheet, oCelula As Object
> Dim i as Integer
> Dim nome, ano as String
> Dim mes(12) As String
> Dim Desconto()
> Dim Url As String
> Dim NovoDoc As Object
> Url = "private:factory/scalc"
> ' NovoDoc = StarDesktop.loadComponentFromURL(Url, "_blank", 0, Desconto())
> mes(1) = "JAN"
> mes(2) = "FEV"
> mes(3) = "MAR"
> mes(4) = "ABR"
> mes(5) = "MAI"
> mes(6) = "JUN"
> mes(7) = "JUL"
> mes(8) = "AGO"
> mes(9) = "SET"
> mes(10) = "OUT"
> mes(11) = "NOV"
> mes(12) = "DEZ"
> Doc = ThisComponent
> Sheet = Doc.Sheets(0)
> ' Sheet1 = NovoDoc.Sheets(0)
> oCelula = Sheet.GetCellByPosition(0,0)
> ' comentei : a linha abaixo mostra a data , depois capturo o ano com 4
> digitos
> ' MsgBox CDate(oCelula.value)
> ano = Right(CDate(oCelula.value), 4)
> for i = 1 to 12
> nome = mes(i) & "_" & ano
> original = mes(i)
> If Doc.Sheets.hasByName(original) Then
>   Sheet = Doc.Sheets.getByName(original)
> End If
> '   Sheet1 = NovoDoc.createInstance("com.sun.star.sheet.Spreadsheet")
>   Sheet.Name = nome
>
> '   Sheet = Doc.createInstance("com.sun.star.sheet.Spreadsheet")
> '   Doc.Sheets.insertByName(nome, Sheet)
> ' for i = 1 to 12
> ' nome = mes(i) & "_" & ano
> ' If NovoDoc.Sheets.hasByName(nome) Then
> ' Sheet1 = NovoDoc.Sheets.getByName(nome)
> ' else
> ' Sheet1 = NovoDoc.createInstance("com.sun.star.sheet.Spreadsheet")
> ' NovoDoc.Sheets.insertByName(nome, Sheet1)
> Next
> End Sub
>
> Obs: deixei as linhas comentadas para que você possa ter uma idéia de como
> criar uma cópia da planilha original.
> Antes que alguém critique "*por entregar o peixe e não ensinar a pescar*",
> aponto que :
> tive muitas dificuldades para aprender a me virar um pouco com a linguagem
> de programação OOBasic; os fóruns com as melhores ideias que encontrei,
> foram, na maioria em inglês, alemão e francês.
> Imagino que muita gente possa ter a mesma dificuldade que tive e penso que
> todo fórum de suporte deva tentar ajudar o usuário de modo gentil (Villeroy
> é genial, mas muitas vezes deselegante e sarcástico).
> Assim, se os usuários conseguirem alcançar os seus objetivos, (somos
> pressionados pelo tempo nas empresas), cada vez mais pessoas irão usar o
> produto.
> Se elas não conseguirem atingi-los em tempo razoável, serão tentadas, com
> razão, a procurarem outros.
> O código deve ser estudado para que possa alcançar voos mais altos, mas
> já não se parte do zero : -)
>
>
Concordo e aplaudo seu esforço ... favor colocar esse seu macro no banco de
Macros do wiki ... parabéns pela iniciativa de novo.

Rogerio

-- 
Você está recebendo e-mails da lista [email protected]
# Informações sobre os comandos disponíveis (em inglês):
  mande e-mail vazio para [email protected]
# Cancelar sua assinatura: mande e-mail vazio para:
  [email protected]
# Arquivo de mensagens: http://listarchives.libreoffice.org/pt-br/usuarios/

Responder a