| |  |  | Miembros: Mensajes: Temas: Online: Ultimo Miembro: | | | 
13-11-2004, 20:39:54
| | Gran Participación en el Foro | | Registrado: sep 2004 Posts: 223
| | operacion Resul = CDbl(TextBaseImporte.Text) * CDbl(TextDto.Text) / 100
Impt = CDbl(TextBaseImporte.Text) - Format(Resul, "#,##0.00")
TextTotal = Format(Impt, "#,##0.00")
De esta forma consigo hacer una operación.
Pero mi pregunta es la siguiente la representación es por Ej. 3,200.00 ósea que me sale la como donde tiene que salir el punto para los miles y el punto para los decimales yo quisiera que el total Ej. 3.200,00 he intentado cambiar el formato pero la operación me sale errónea por favor donde esta el error gracias | 
13-11-2004, 21:07:46
|  | Administrator | | Registrado: dic 2002 Ubicación: BURGOS - ESPAÑA Posts: 5.254
| | Revisa a ver cómo tienes la Configuración regional en tu Sistema Operativo. Ahí está la causa. | 
14-11-2004, 09:11:18
| | Gran Participación en el Foro | | Registrado: sep 2004 Posts: 223
| | Bien muchas gracias, no se lo que me paso por que hace unos días estuve revisando lo de la configuración regional por que sospechaba y me salía igual y ahora que lo he hecho com. mas tranquilidad y con tu asesoramiento confirmado se ve que al cambiar los signos no lo cambien bien.gracias y un saludo | 
14-11-2004, 10:23:32
|  | Administrator | | Registrado: dic 2002 Ubicación: BURGOS - ESPAÑA Posts: 5.254
| | Tranquilo, que esas cosas pasan en las mejores familias... | 
16-11-2004, 11:34:55
| | Gran Participación en el Foro | | Registrado: sep 2004 Posts: 223
| | Yo se que abuso mucho de vuestra buena fe, pero sois siempre mi solución. Sigo con el tema del formato que hay algo que desconozco, no algo sino mucho pero bueno esta es mi pregunta:
Con este código sumo una fila del grid
Dim j As Long
Dim suma As Double
For j = 1 To MSFlexGrid1.Rows - 1
MSFlexGrid1.Row = j
suma =suma + CDbl(MSFlexGrid1.TextMatrix(j, 5))
Next j
'Añadir el resultado a los control
TextBaseImporte.Text =Format( suma,”#,###.##”)
Pero me hace lo siguiente el resultado sí la suma del grid Ej. 78,00 en el control se me representa 7.800, venga muchas gracias | 
16-11-2004, 12:05:11
| | Moderador | | Registrado: dic 2002 Ubicación: Madrid Posts: 4.190
| | Sustituye la función de dominio de VB CDbl() por esta variante que te solucionará el probela de los formatos con cualquier separador decimal. Código: '--------------------------------------------------------------------------------------------------------------
'
' Procedimiento:
' Tunelsoft 2003
'
'--------------------------------------------------------------------------------------------------------------
Public Function DConv(v As Variant) As Variant
On Local Error Resume Next
If InStrRev(v, ",") <> 0 Then
DConv = CDbl(v)
ElseIf InStrRev(v, ".") <> 0 Then
DConv = CDbl(Val(v))
Else
DConv = CDbl(Val(v))
End If
End Function | 
16-11-2004, 21:10:58
| | Gran Participación en el Foro | | Registrado: sep 2004 Posts: 223
| | Acalanto la función me va bien pero si hago esto
SUMA = DConv(Text1) + DConv(Text2)
Label1.Caption = Format(SUMA, "#,###.00")
Sumo por Ej: text1= 26,00 + text2=26,00 el resultado que me da 5.200,00 cuando me tenia que dar para mi gusto 52,00 como lo hago,igual esuna pregunta tonta pero lo ciento gracias | 
17-11-2004, 03:12:33
|  | Gran Participación en el Foro | | Registrado: dic 2002 Ubicación: Santander Posts: 171
| | Hola.
Mira yo utilizo la función replace con el siguiente formato:
Replace("" & TextBaseImporte.Text, ".", ",") en la que sustitye el punto por la coma.
Tambien puedes utilizarla al revés:
Replace("" & TextBaseImporte.Text, ",", ".") en la que sustituye la coma por el punto
Bueno, ya sé que ahora me llegará bronca de los dos grandes jefes, esto es los señores Acalanto y Movilla, porque esto es una chapuza nacional, pero los ignorantes como yo recurrimos a burradas como la que te acabo de "soltar".
Lo más correcto sería utilizar la Function DConv que en el post anterior te indicaba Acalanto.
Saludos a todos.
__________________
Miguel Peña
Santander - España
Corrije a un sabio y le harás más sabio.
Corrije a un necio y le harás tu enemigo.
| 
17-11-2004, 06:40:00
| | Moderador | | Registrado: dic 2002 Ubicación: Madrid Posts: 4.190
| | Si SUMA s un tipo numérico el valor de la operación tiene que ser forzosamente 52,00 si los textos contienen 26,00 y 26,00 respectivamente. Verifica en modo debuger que valor toma esa variable en el momento de la operación. | 
17-11-2004, 15:55:16
|  | Administrator | | Registrado: dic 2002 Ubicación: BURGOS - ESPAÑA Posts: 5.254
| | Cita: |
Empezado por MiguelPG Bueno, ya sé que ahora me llegará bronca de los dos grandes jefes, esto es los señores Acalanto y Movilla, porque esto es una chapuza nacional, pero los ignorantes como yo recurrimos a burradas como la que te acabo de "soltar". | Voy a confesarte, Miguel, mi pecado, que también es parecido al tuyo.. No en valde somos humanos y todos procedemos de Adán y Eva... Código: ' En un Módulo defino el "mal signo" decimal
' que deberá ser reemplazado por el correcto
Public MalSigno As String
If InStr(3 / 2, ".") Then
MalSigno = ","
Else
MalSigno = "."
End If
' -----------------------------------
' Al abandonar la introducción de datos numéricos hago la conversión
Private Sub Text1_LostFocus()
If InStr(Text1.Text, MalSigno) Then Text1.Text = Val(Text1.Text)
End Sub O ¿qué te creías, que sólo eras tú el que sabías hacer guarradas??? | | Herramientas | | | | Desplegado | Mode Lineal |
Normas de Publicación
| no Puedes crear nuevos temas no Puedes responder a temas no Puedes adjuntar archivos no Puedes editar tus mensajes Código [IMG] está habilitado Código HTML está deshabilitado | | | La franja horaria es GMT. Ahora son las 14:09:32.
Powered by vBulletin® Version 3.6.8 Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.1.0
A vBSkinworks Design
|  |