Definir tempo/prazo para executar o macro!

Olá pessoal!

Eu tenho uma macro que tem 2 passos!

Funciona assim:

Está escrito na imagem o que eu quero


Segue o código:

Option Explicit

Public oPlanCalculadora As Object

Sub LimparDados()

    'base'
        oPlanCalculadora = ThisComponent.Sheets.GetByName("Calculadora")
    'objetos'
        If oPlanCalculadora.GetCellRangeByName("AD14").String = "Limpar dados" Then
            oPlanCalculadora.GetCellRangeByName("AD14").SetString("Tem certeza?")
            oPlanCalculadora.GetCellRangeByName("AC14").CellBackColor = RGB( 199,68,74 )

            'Eu quero que aqui, tenha um código que defina o prazo para apertar de novo:'
            'Por exemplo, a pessoa vai apertar e se estiver como "Limpar dados", vai aparecer "Tem certeza?"'
            'Se a pessoa não apertar de novo em 5 segundos, vai voltar para a configuração original, que é essa aqui:'
            ''
            'oPlanCalculadora.GetCellRangeByName("AD14").SetString("Limpar dados")'
            'oPlanCalculadora.GetCellRangeByName("AC14").CellBackColor = RGB( 197,200,198 )'

            Exit Sub
        End If

        If oPlanCalculadora.GetCellRangeByName("AD14").String = "Tem certeza?" Then
            oPlanCalculadora.GetCellRangeByName("AD14").SetString("Dados limpos!")
            oPlanCalculadora.GetCellRangeByName("AC14").CellBackColor = RGB( 154,168,58 )
        End If

            'Aqui eu quero que quando tudo for executado, depois de 10 segundos, volte para a configuração original'
            'É a mesma configuração original lá de cima:'
            ''
            'oPlanCalculadora.GetCellRangeByName("AD14").SetString("Limpar dados")'
            'oPlanCalculadora.GetCellRangeByName("AC14").CellBackColor = RGB( 197,200,198 )'
End Sub

O que eu quero, está escrito na imagem e no codigo!

As instruções Wait ou WaitUntil seriam uteis aqui?

https://help.libreoffice.org/6.4/pt-BR/text/sbasic/shared/03130610.html?DbPAR=BASIC#bm_id3154136

https://help.libreoffice.org/6.4/pt-BR/text/sbasic/shared/03130600.html?DbPAR=BASIC#bm_id3154136

Eu li aqui amigo, creio eu que também funciona!
Depois eu vou testar e comento aqui!
Fica até com uma linha de codigo mais facil e curta!

Já consegui fazer, o resultado foi o seguinte:

Option Explicit

Public oPlanCalculadora As Object

Sub LimparDados()
    'Variáveis utilizados para as pausas'
    Dim TempoDePausa, Inicio

    'base'
        oPlanCalculadora = ThisComponent.Sheets.GetByName("Calculadora")
    'objetos'
        If oPlanCalculadora.GetCellRangeByName("AD14").String = "Limpar dados" Then
            oPlanCalculadora.GetCellRangeByName("AD14").SetString("Tem certeza?")
            oPlanCalculadora.GetCellRangeByName("AC14").CellBackColor = RGB( 199,68,74 )

		    TempoDePausa = 5  ' Define a duração em segundos'
		    Inicio = Timer    ' Define o tempo de inicio'
		
		    Do While Timer < Inicio + TempoDePausa Loop
		
		    If oPlanCalculadora.GetCellRangeByName("AD14").String = "Tem certeza?" Then
			    oPlanCalculadora.GetCellRangeByName("AD14").SetString("Limpar dados")
			    oPlanCalculadora.GetCellRangeByName("AC14").CellBackColor = RGB( 197,200,198 )
		    End If
        End If

        If oPlanCalculadora.GetCellRangeByName("AD14").String = "Tem certeza?" Then
            oPlanCalculadora.GetCellRangeByName("AD14").SetString("Dados limpos!")
        
            oPlanCalculadora.GetCellRangeByName("AC14").CellBackColor = RGB( 154,168,58 )
        End If
    
        if oPlanCalculadora.GetCellRangeByName("AD14").String = "Dados limpos!" Then
		    TempoDePausa = 10  ' Define a duração em segundos'
		    Inicio = Timer    ' Define o tempo de inicio'
		
		    Do While Timer < Inicio + TempoDePausa Loop

            If oPlanCalculadora.GetCellRangeByName("AD14").String = "Dados limpos!" Then
                oPlanCalculadora.GetCellRangeByName("AD14").SetString("Limpar dados")
                oPlanCalculadora.GetCellRangeByName("AC14").CellBackColor = RGB( 197,200,198)
            End If
        End If
End Sub

Espero que possa ajudar alguém!