Visual Basic para Aplicaciones - Cambiar comas por puntos

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil

Cambiar comas por puntos

Publicado por Ramon (9 intervenciones) el 28/08/2017 21:31:32
Hola a tod@s;

El procedimiento que sigue, "separar()", como tod@s podeis ver, separa o fracciona cadenas mediante el separador ",", pero si las subcadenas obtenidas contienen el signo "." tambien me lo cambia por ",". Supongo que se debe a la "configuracíón regional".
He encontrado el procedimiento "cambia()" que, como se puede ver arregla este fallo y me gustaria integrarlo al primer procedimiento, pero no se hacerlo.
Alguien puede echarme una mano. Muchas gracias. !!!!!!!

**************************************************************************************************************
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Sub separar()
    Dim cadena As String, n As Long
    Dim matriz() As String
    Dim i As Long, izq As Long
 
    'cadena será el contenido de la celda a evaluar
    cadena = Range("A1").Value
 
    'asignamos cada parte como un elemento de la matriz
    'la función SPLIT devuelve una matriz que contiene un número especificado de subcadenas
    'obtenidas o delimitadas por el operador dado
    matriz = Split(Trim(cadena), ",")
 
    'contamos el número total de elementos
    n = UBound(matriz) + 1
    izq = Len(matriz(0)) - 3
 
    'obtenemos en las celdas siguientes los textos obtenidos
    For i = 1 To n
        If i = 1 Then
            'Range("A1").Offset(0, i).Value = matriz(i - 1)' por filas
            Range("A1").Offset(i, 0).Value = matriz(i - 1) ' por columnas
        Else
            'Range("A1").Offset(0, i).Value = Left(matriz(0), izq) & matriz(i - 1)' por filas
            Range("A1").Offset(i, 0).Value = Left(matriz(0), izq) & matriz(i - 1) ' por columnas
            'Cells(i, 0) = Replace(ActiveSheet.Cells(i, 0).Select, ",", ".")
        End If
    Next
End Sub
****************************************************************************************************************
1
2
3
4
5
Private Sub cambia()
    Dim valor As Currency
    valor = "1750,58"
    MsgBox Replace(valor, ",", ".")
End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder