** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Otros de Microsoft: Windows y Office > Excel
  Mensajes nuevos Mensajes nuevos RSS - CCur con 4 decimales
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoCCur con 4 decimales

 Responder Responder
Autor
Mensaje
febrero59 Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 04/Diciembre/2007
Localización: España
Estado: Sin conexión
Puntos: 27
Enlace directo a este mensaje Tema: CCur con 4 decimales
    Enviado: 08/Junio/2009 a las 18:16

Hola,

Después de buscar en aquí y en la web, no encuentro solución  al problema que tengo, que consiste en captar en un txtbox un numero con 4 decimales que luego guardo en una celda excel con los 4 decimales incluidos.
 
El código que tengo es:
 
Private Sub ValorRef_afterupdate() 'tras actualizarse el textbox
    If IsNumeric(ValorRef.Value) Then
        ValorRef.Value = Format(ValorRef.Value / 10000, "0.0000")
        Sheets("Finan").Range("L21").Value = CCur(ValorRef.Value)
    Else
        ValorRef.Value = 0
    End If
End Sub
El problema que tengo es que al guardar en excel la cadena, con CCur sólo me graba 2 decimales (con redondeo) y yo necesito guardar en la celda los 4 decimales alimentados.
 
¿cómo podría hacerlo?
 
Un abrazo, Juan
 
Arriba
Emilio Ver desplegable
Administrador
Administrador

Santander

Unido: 08/Agosto/2004
Localización: España
Estado: Sin conexión
Puntos: 18836
Enlace directo a este mensaje Enviado: 08/Junio/2009 a las 18:23
Hola!
 
¿Y que necesidad tienes de usar CCur?, yo diría que ninguna, puede utilizar format
 
WorkSheets("Finan").Range("L21").Value = Format(ValorRef, "0.0000")
Saludos a todos desde Huelva

http://www.mvp-access.es/emilio/
Arriba
febrero59 Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 04/Diciembre/2007
Localización: España
Estado: Sin conexión
Puntos: 27
Enlace directo a este mensaje Enviado: 08/Junio/2009 a las 23:04
Gracias Emilio,
 
De cuando empecé a salsear con formularios vba excel, recuerdo el gran problema que tuve para controlar la captación de datos numéricos en un textbox, formateando su presentación, y grabar correctamente la celda en la que guardaba luego los datos.
 
CCur me resolvió de forma eficaz, la grabación de los números introducidos en el textbox (cuyo formato controlo con  Format(variable.Value, "#,##0")) , en la celda excel correspondiente: El format indicado y CCur casan perfectamente.
 
Cualquier otra opción me viene dando problemas, al  divorciarse la unicidad de número que me da el format del textbox y la grabación de la celda con CCur.
 
No sé si me he explicado... pero el problema lo tengo ahora que necesito captar 4 decimales y vuelvo a recordar lo que me costó aquello.
 
En definitiva, lo que estoy buscando es controlar adecuadamente la introducción y presentación de un número de hasta 4 decimales en un textbox, y a la vez poder grabarlo con hasta 4 decimales en la celda correspondiente de la hoja de excel.
 
Gracias de nuevo, Juan.
 
Arriba
Jordi-Albert Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 06/Abril/2006
Localización: Alemania
Estado: Sin conexión
Puntos: 4321
Enlace directo a este mensaje Enviado: 09/Junio/2009 a las 08:53
mirando la ayuda de CCur:

CCur Currency -922,337,203,685,477.5808 to 922,337,203,685,477.5807.


ello significa que tiene 4 decimales....

como tienes difinida ValorRef ??

has probado de hacer la asignación en una sola línea?

      Sheets("Finan").Range("L21").Value = CCur(Format(ValorRef.Value / 10000, "0.0000"))

aunque para mí, lo lógico sería:

      Sheets("Finan").Range("L21").Value = Format((CCur(ValorRef.Value / 10000), "0.0000")

(no es lógico dar un formato = "convertir a texto" para posteriormente convertir el valor a formato moneda....)

  


Editado por Jordi-Albert - 09/Junio/2009 a las 08:57
Arriba
febrero59 Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 04/Diciembre/2007
Localización: España
Estado: Sin conexión
Puntos: 27
Enlace directo a este mensaje Enviado: 09/Junio/2009 a las 18:24
Hola,
Tantas vueltas encerrado en adaptar esquemas anteriores...brr.
 
Nada, me funciona correctamente lo siguiente:
 
Private Sub ValorRef_afterupdate()
    If IsNumeric(ValorRef.Value) Then
        ValorRef = Val(ValorRef.Value)
        Sheets("Finan").Range("L21").Value = ValorRef
    Else
        ValorRef.Value = 0
    End If
End Sub
 
Básicamente se trataba de aplicar la función valor a la variable y punto.
 
Muchas gracias a todos, Juan.
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable