Macro para cambiar el formato de números

Querría una macro que hiciese lo siguiente,,, en una columna tengo números pero a veces hay datos de la forma 391+01050, en estos casos lo que quiero que haga es sumar el 01 al 391 y sustituir el 01 por una coma o punto. Con lo que debería quedar ese dato como 392,050..

1 respuesta

Respuesta
-1

Esta macro hace lo que necesitas:

Sub Susstitir01()
uf = Range("A" & Rows.Count).End(xlUp).Row
For t = 1 To uf
    If InStr(1, Cells(t, "A"), "391+01") Then
        Cells(t, "A") = "392." & Mid(Cells(t, "A"), 7, Len(Cells(t, "A")))
    End If
Next t
End Sub

Si te ha valido la respuesta.

PD: Estoy suponiendo que los datos están en la columna A, si los tienes en otra columna, cambia la "A" en el código por tu columna.

¡Gracias! Pero me refería al que los datos son de esa forma no que siempre el 391 se tenga que convertir en 392. Pero gracias de todas formas

Quieres decir, que cuando haya un signo +, que al número formado por los 3 primeros caracteres, ¿se le sume los el número formado por los 2 siguientes caracteres al signo +?

Si es así, esta macro lo hace:

Sub Sustituciones()
uf = Range("A" & Rows.Count).End(xlUp).Row
For t = 1 To uf
    If InStr(1, Cells(t, "A"), "+") Then
       num = Val(Left(Cells(t, "A"), 3)) + Val(Mid(Cells(t, "A"), InStr(1, Cells(t, "A"), "+") + 1, 2))
        Cells(t, "A") = Str(Str(num) & "." & Mid(Cells(t, "A"), 7, Len(Cells(t, "A"))))
    End If
Next t
End Sub

Espero tus comentarios y Si te ha valido la respuesta.

Si quieres que las cantidades que acaban en 0, se te mantenga el cero del final, usa esta macro:

Sub Sustituciones()
uf = Range("A" & Rows.Count).End(xlUp).Row
For t = 1 To uf
    If InStr(1, Cells(t, "A"), "+") Then
       poner = False
       If Right(Cells(t, "A"), 1) = "0" Then poner = True
       num = Val(Left(Cells(t, "A"), 3)) + Val(Mid(Cells(t, "A"), InStr(1, Cells(t, "A"), "+") + 1, 2))
       Cells(t, "A") = Str(num & "," & Mid(Cells(t, "A"), 7, Len(Cells(t, "A"))))
       If poner = True Then Cells(t, "A") = Cells(t, "A") & "0"
    End If
Next t
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas