(Macro) Botão de opção - dúvidas

Tenho uma caixa de diálogo que inicia sempre com a data atual. Adicionei 6 botões de opção para diminuir o dia (Ex. se hoje é dia 09/05/20 vai diminuindo para 08/05/20, 07/05/20, e assim por diante).
Toda vez que fecho a caixa de diálogo e abro novamente, por padrão os botões de opção voltam ao estado inicial (todos desmarcados).
Minha dúvida é a seguinte, existe uma forma de manter salvo o estado botão de opção selecionado? (Para quando eu abrir a caixa de diálogo novamente, ela trazer o último botão selecionado antes do fechamento)

segue planilha exemplo:

List Box - numeric field - dialog.ods

O retângulo laranja (Botão de opção) abre a caixa de diálogo em questão.
As macros estão no módulo “OptionButton”

Ola @SpartanBR, teoricamente para que isso ocorra, a escolha feita deve ser armazenada em uma célula e toda abertura deste dialogo ele recuperar a informação desta célula.

Logicamente funcionara se o arquivo foi salvo ao sair.

Como fazer é para os universitários, infelizmente sai do meu nível.

@SpartanBR

Para os casos de OptionButton, ele traz 02 estados 0 = não ativo e 1 = ativo

https://wiki.openoffice.org/wiki/Documentation/BASIC_Guide/Control_Elements#Option_Buttons

Para que seu OptionButton retorne ativo como a última vez fechado, o Calc precisa de um “start” de informação, ou seja, como o @schiavinatto disse, alguma célula deve conter alguma informação, para a programação avaliar e ativar o OptionButton necessário.

Para que o OptionButton fique ativo, o comando é este:

oDialog1.GetControl("Nome_do_OptionButton").Model.State = 1

É importante que cada OptionButton tenha seu nome particular.

Para jogar a informação do OptionButton na planilha, o comando é este:

    REM  *****  BASIC  *****

Global oDialog1 as Object
Sub Dialog1Show
		
	DialogLibraries.LoadLibrary( "Standard" )
	oDialog1 = CreateUnoDialog( DialogLibraries.Standard.Dialog1 )
				
	oDoc = ThisComponent
	oDialog1.SetPosSize(500, 100, 600, 200, 17)

    oDialog1.Execute()	
    oDialog1.Dispose()
	
End Sub
rem>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Sub Lancar

	Dim oDoc, oSheet as Object
	Dim Opt001, Opt002 as Long
    Dim nOpt001, nOpt002 as String
	
	oDoc = ThisComponent
	oSheet = oDoc.Sheets.getByName("Planilha1")
		
Opt001 = oDialog1.GetControl("opt001").Model.State
Opt002 = oDialog1.GetControl("opt002").Model.State

If oDialog1.GetControl("opt001").Model.State = 1 Then
	nOpt001 = oDialog1.GetControl("opt001").Model.Label
Else
	nOpt001 = "nulo"
End If

If oDialog1.GetControl("opt002").Model.State = 1 Then
	nOpt002 = oDialog1.GetControl("opt002").Model.Label
Else
	nOpt002 = "nulo"
End If

oSheet.getCellRangebyName("A1").value = Opt001
oSheet.getCellRangebyName("A2").value = Opt002

oSheet.getCellRangebyName("B1").string = nOpt001
oSheet.getCellRangebyName("B2").string = nOpt002

End Sub

Você pode fazer um jogo de comandos “If Else End IF” para verificar se o State do OptionButton é 1 ou 0 e retornar a Label dele para uma variável se preferir. Após isso, a informação deve ser lançada em alguma célula na planilha. Lembrando que para cada Option, deve ter uma célula para cada.

@Conras

Muito obrigado.
Com base no seu código, consegui adaptar para a minha necessidade. Fiz um “IF” para verificar a célula e retornar (caso o valor fosse 1) o botão de opção marcado na inicialização da caixa de diálogo. Com mais botões fica trabalhoso, mas com paciência pode ser feito.
Valeu pela ajuda.

@SpartanBR, disponha…qualquer coisa, só chamar por aqui.