Como riscar uma tarefa após acionamento do formulário "caixa de seleção"?

Olá, tudo bem? Gostaria de saber como riscar uma tarefa após acionar o formulário “caixa de seleção”, como se fosse um checklist mesmo! Obrigada :slight_smile:

Ola @isa_comss, de um arquivo exemplo como é, e como tem que ficar. Fica mais fácil palpitar…

Pensei em uma forma. veja se é isso mesmo que você quer. Se precisar, eu explico mais detalhadamente.
Teste.ods (8.6 KB)

Pegando um gancho na planilha do @Eliel_Francklim , segue alternativa com macro:

> Option Explicit 
> Sub Tachado
> 	Dim wb As Object : wb = ThisComponent
> 	Dim ws As Object : ws = wb.sheets(0).getDrawPage()
> 	Dim frm As Object : frm = ws.Forms.getByName("Formulário")
> 	Dim csTeste As Object : csTeste = frm.getByName("csTeste")
> 	
> 	With csTeste 
> 		If .state = 1 Then 
> 			.FontStrikeout = 1
> 			.label = "Selecionado"
> 		Else 
> 			.FontStrikeout = 0
> 			.Label = "Não Selecionado"
> 		End If
> 	End With 
> End Sub

riscar-cs.ods (16.9 KB)

2 Likes

Adicionei uma caixa de diálogo utilizando eventos diretos sobre o objeto, bem como evento MouseMove sobre o formulário.

Option Explicit
'============================================================================ 
Dim dlgTeste As Object
Dim frmTeste As Object
Dim csTeste As Object
Dim bt As Object 
'============================================================================
Sub Tachado
	Dim wb As Object : wb = ThisComponent
	Dim ws As Object : ws = wb.sheets(0).getDrawPage()
	Dim frm As Object : frm = ws.Forms.getByName("Formulário")
	csTeste = frm.getByName("csTeste")
	
	With csTeste 
		If .state = 1 Then 
			.FontStrikeout = 1
			.label = "Selecionado"
		Else 
			.FontStrikeout = 0
			.Label = "Não Selecionado"
		End If
	End With 
End Sub
'============================================================================
Sub Iniciar	
	DialogLibraries.loadLibrary("Standard")
	dlgTeste = createUnoDialog(dialogLibraries.Standard.getByName("dlgTeste"))
	
	frmTeste = dlgTeste.getModel("frmTeste")
	csTeste = dlgTeste.getControl("csTeste")
	
	dlgTeste.Execute
	dlgTeste.Dispose
End Sub 
'============================================================================	
Sub Tachar 
	With csTeste 
		If .state = 1 Then 
			.Model.FontStrikeout = 1
			.label = "Selecionado Evento Clickar"
		Else 
			.Model.FontStrikeout = 0
			.Label = "Evento Clickar"
		End If
	End With 
	
End Sub 
'============================================================================
Sub MouseMoveCS		
	For Each bt In dlgTeste.Controls
		If bt.ImplementationName = "stardiv.Toolkit.UnoCheckBoxControl" Then
			If bt.state = 1 Then 
				bt.Model.FontStrikeout = 1
				bt.Label = "Selecionado Evento MouseMove"
			Else 
				bt.Model.FontStrikeout = 0
				bt.Label = "Evento MouseMove"
			End If 				
		End If		
	Next 
End Sub

riscar-cs.ods (16.9 KB)

1 Like