Código para inserir a data na célula selecionada

Sub DataIn (oEvento)
	ThisComponent.Sheets(0) _
	.getCellRangeByName ( "iData" ) _
	.String = oEvento.Source.Model.Text 
End Sub

Fonte: (…) “campo de data” (…) em uma “célula”

Olá, pessoal!

É possível mudar o código acima para inserir a data
em qualquer célula selecionada, considerando
as configurações na planilha abaixo?

218094B_Campo data para célula (15.2 KB)

.
.
Grato pela atenção!
Orlando Souza
:face_with_monocle:

Note que o resultado na célula será um texto, não uma data,

	cell  = ThisComponent.CurrentController.Selection
	If cell.ImplementationName = "ScCellObj" Then
		cell.String = oEvento.Source.Model.Text 
	End If

Se o que você realmente quer na célula é a data selecionada, então a célula de destino deve ter formato de data e alterar o código por.

d = oEvento.Source.Model.Date
cell.Value = DateSerial(d.Year, d.Month, d.Day)
1 Like

Obrigado, @elmau

Sub DataIn2 (oEvento)
	cell  = ThisComponent.CurrentController.Selection
	d = oEvento.Source.Model.Date
	cell.Value = DateSerial(d.Year, d.Month, d.Day)
End Sub

Essa sua opção é melhor pra mim.
Agora, dá erro se apagar a data através do “campo de data” ou “Nenhum”; e
Percebi também que os códigos não permitem eu repetir a data em outra célula.

Após buscas na internet e até uma solução melhor, eu vou acrescentar a linha de comando abaixo que interrompe o erro na linha seguinte; só faltando permitir inserir a mesma data em outra célula selecionada:

On Error Resume Next

.
Obrigado!
:sunglasses:

Acho que, reitero o pensamento, use esta linha apenas para evitar um erro. Deve ser usado para controlar erros, não para pular.