InputBox dando o valor numérico e não em string

Bom dia,

sTextNota35 = InputBox ("Digite a nota do item 3.5")
Doc = ThisComponent
Sheets = Doc.getSheets  'get the collection of Sheets
Sheet = Sheets.GetByName("Folha2")  'get the specific Sheet
Cell = Sheet.getCellRangeByName("M27")  'Get the named Cell
Cell.String = sTextNota35

a seguinte macro salva o valor que colocaram na inputbox em 2 lugares, porém está salvando como texto e queria que salvasse como número pois é uma nota.

Como é possível?

Tentrei trocar o Cell.String por Cell.Integer e não deu certo.

Como esta formatado a célula que recebe?

Está formatada para número… ela transforma em texto após a macro ser executada

para ter um numero, use

Cell.Value - sTextNota35

Perfeito Oliver!

Agora está funcionando!

Muitíssimo obrigado sr.!

Aproveitando o gancho, sabes me dizer como posso fazer para restringir os valores que são digitados numa inputbox? Preciso que ela somente aceite os valores de 1,3 ou 5, qualquer coisa fora disso deve ser rejeitada.
Alguma ideia?
Obrigado desde já.
Desculpe, errei seu nome, corrigindo: Olivier*

Dados / Validação / Lista de valores na célula não resolve ?

@Gilberto Se o input for manual, sim resolve, se o input for via inputbox não, ele coloca o valor que coloquei na inputbox sem questionar.

Veja Complemento em minha resposta…

No caso agora preciso que ele entre em loop até que a pessoa digite a nota 1, 3 ou 5.

Como posso fazer isso?

Nesse caso de agora ele só copia se for 1, 3 ou 5, qualquer outro valor ele não está copiando, é um avanço.
Obrigado pela ajuda até agora!

Tentei utilizar Do e loop mas acabei não conseguindo encaixar a sintaxe

Veja Alteração no Complemento em minha resposta…

Consegui mexer e acertar o código!
Obrigado Gilberto, ali só tem que separar o 1 e o 3 pra funcionar perfeitamente

Esta funcionando normal, se usar vírgula no decimal, mas se usar ponto é texto.


Complemento (alteração 1)

Vela se esta alteração em sua macro resolve: Acrescentei uma chamada da mesma macro após mensagem de erro. ( a acertei o valor 5 tem que estar entre aspas ).

Sub Main2
Doc = ThisComponent
Sheets = Doc.getSheets  'get the collection of Sheets
Sheet = Sheets.GetByName("Folha2")  'get the specific Sheet
Cell = Sheet.getCellRangeByName("A2")  'Get the named Cell
sTextNota35 = InputBox ("Digite 1,3 ou 5")
If sTextNota35 = "1,3" Then
	Cell.String = sTextNota35
ElseIf sTextNota35 = "5" Then
	Cell.String = sTextNota35
Else 
	MsgBox "Escolha 1,3 o 5"
    Call Main2
End If	
End Sub

Aqui não, mesmo colocando na inputbox como “2,0” ou “2” ele continua formatando como texto.
segue exemplo, e antes de acionar a macro estava como número

[UploadDeImagens.com.br - Capturar.PNG]

@andysedrez, no Calc mesmo que a formatação for texto (@) e não houver caracteres estranhos para o formato numérico, para uso em calculo funciona normalmente.

Veja o exemplo abaixo: C5 esta formatado texto (@) e D6 é usado para cálculo.

Descrição da imagem

Certo Gilberto, mas estranhamente não estava sendo calculado numa função de SOMA, aparentemente o Oliver conseguiu a solução, obrigado pela ajuda Gilberto!

Ok, havia esquecido deste detalhe, conta entre eles não da certo.

Ola amigos.
Para registro, a cadeia de condições pode ser simplificada da seguinte forma:

if (sTextNota35<>1 AND sTextNota35<>3 AND sTextNota35<>5) then
    MsgBox "Escolha 1,3 o 5"
   Call Main2
end if

Já para colocar o valor (numérico) inteiro na célula destino, usar:
Cell.Value = CInt(sTextNota35)