Function ou Sub com parâmetros opcionais ou Pré definidios

sub Retornar_Ultimas_Dozes_Vendas (ByVal Automatico As Boolean )

Gostaria que este Parâmetro Automatico fosse Opcional na chamada ou seja se nada for passado ele assume um determinado Valor

Chamo assim

Retornar_Ultimas_Dozes_Venda(True)

ou

Retornar_Ultimas_Dozes_Venda(False)

Mas preciso chamar assim

Retornar_Ultimas_Dozes_Venda() ou Retornar_Ultimas_Dozes_Venda(false) ou Retornar_Ultimas_Dozes_Venda(True)

em algumas linguagens isso é permitido . Como fazer isso no Calc da Libreoffice ??

Obrigado

Boa tarde,

Na linguagem Basic do LibreOffice existe a Instrução Optional que torna o parâmetro opcional. Então você deve testar no código o parâmetro com a função IsMissing( NomeParametro ). Por exemplo:

Sub MsgTipo( Optional nTipo )
   
   If IsMissing( nTipo ) Then
     msgbox "Tipo omitido"
   Else
     msgbox "Tipo informado: " & nTipo
   End If
   
End Sub

Atte,

Obrigado , acho que ajuda muito … Mas caso não seja informado ele assume um valor pre definido ?
No caso de Inteiros por exemplo geralmente é o zero

Existe algo na Linguagem Basic do Libre Office que possa pre definir este parâmetro e o mesmo assuma um
valor caso não seja definido ?

Muito obrigado

Tente assim, no vba funciona, não sei no LO basic. Defina o valor a variavel opcional logo que vc declara o argumento do procedimento/função:

Sub MsgTipo( Optional nTipo As String = "Seu valor padrão" )

     msgbox "Tipo informado: " & nTipo


End Sub

fonte:

Obrigado @mrKalvin … Então pensei que pudesse ser desta forma tb precedito do Optional porém o compilador não aceita

Obrigado … Muito obrigado

Aguardo sugestões

Acredito que o arranjo mais aproximado com o que você quer é, por exemplo:

Sub Retornar_Ultimas_Dozes_Venda(Optional nParam )

If IsMissing( nParam ) Then
  nParam = 0
End If

...

Você identifica que o parâmetro não foi passado com IsMissing() e então define o valor padrão dentro da cláusula If. Parece que não existe esse “atalho” do VBA.

Interessante . Obg

Obg mesmo