Bom dia,
Olhando as imagens, acredito que esteja procurando o seguinte:
Sub botInserir( oEvento )
Dim oDoc, oDados, oFormulario, oData
Dim sNome as String, sData as String
oFormulario = oEvento.Source.Model.Parent
oNome = oFormulario.getByName( "Caixa de texto 1" )
oData = oFormulario.getByName( "Campo de data 1" )
sNome = oNome.Text
sData = oData.Text
oDoc = ThisComponent
oDados = oDoc.Sheets.getByName( "Hoja3" )
Dim lin
lin = 1
Do Until oDados.getCellByposition( 0,lin ).String = ""
lin = lin + 1
Loop
oDados.getCellByPosition( 0,lin ).String = sNome
oDados.getCellByPosition( 1,lin ).String = sData
oNome.Text = ""
oData.Reset()
End Sub
Para funcionar é preciso que seja associada ao Evento Executar ação do botão de pressão do formulário. E os nomes Caixa de texto 1 e Campo de data 1 substituídos pelos nomes de seus controles.
> Nessa imagem mostra melhor como quero... tentei com essa macro ai, que o amigo @Beto me mandara.., pórem antes mesmo de adaptar ela dava o mesmo erro que esse ai. Alguem saberia corrigi-lo? ficaria grato.
Uma das razões do erro é que o código foi feito para o controle Botão de Seleção de Arquivo, que é um controle especial, com o objetivo de fazer referência a ele mesmo a partir do evento. No seu caso, por outro lado, é preciso que do evento do botão de pressão ascendamos ao fomulário para conseguir “pegar” cada controle pelo seu nome. Veja:
- Referência ao próprio botão seleção de arquivo:
oSelArquivo = oEvento.Source
- Referência ao fomulário dentro do botão de pressão:
oFormulario = oEvento.Source.Model.Parent
**Obs.:**
Para completar a informação, temos outra forma de chegar ao formulário numa planilha no Calc sem depender do evento de um controle:
oDoc = ThisComponent
oPlan = oDoc.Sheets.getByName( "Planilha1" )
oFormulario = oPlan.DrawPage.Forms.getByName( "Formulário" )
Atte,