
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. !!!!!!!
**************************************************************************************************************
****************************************************************************************************************
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


0