Saltar al contenido

Problema al convertir cantidad con este símbolo delante: '


Recommended Posts

publicado

Hola,

Me han pasado un fichero, donde las cantidades vienen con ' delante, sería así:

'0,234

'123456,03

He utilizado este código para quitarle el símbolo porque necesito sumarlo, pero en algunos casos se queda así 0.234 y no me deja reemplazar el punto por la coma, solo quitárselo y quedarme con 0234 Os paso un fichero de ejemplo, por si se os ocurre otro modo de cambiar el formato. 

Muchas gracias!

 

With Worksheets("Hoja1")

    For i = 2 To .UsedRange.Rows(.UsedRange.Rows.Count).Row

        If Cells(i, "A").Value Like "'*" Then
		   Cells(i, "A").Value = Right(Cells(i, "A").Value, Len(Cells(i, "A").Value) - 1)
		End If
    Next

End With

 

ejemplo_texto.xlsm

publicado
hace 1 hora, Antoni dijo:
    With ActiveSheet.UsedRange
      .Replace "'", ""
      .Value = .Value
    End With

 

Buenas, Antoni...

Es que me pasa lo mismo, después de pasar el código a esto:

 
'-288170,45

'-1,086

Se convierte en esto: 

-288170,45
-1.086

Se sustituye la coma por el punto... y te lo convierte a  - 1086 pero no -1,086

Lo conseguí con fórmula de excel (sin macro) así: =DERECHA(A1, LARGO(A1) - 1) 

Pero no consigo replicar esto mismo con VBA sin que pase lo mismo.

Gracias. 

 

publicado
hace 16 minutos , Gsus dijo:

Buenas, Antoni...

Es que me pasa lo mismo, después de pasar el código a esto:

 
'-288170,45

'-1,086

Se convierte en esto: 

-288170,45
-1.086

Se sustituye la coma por el punto... y te lo convierte a  - 1086 pero no -1,086

Lo conseguí con fórmula de excel (sin macro) así: =DERECHA(A1, LARGO(A1) - 1) 

Pero no consigo replicar esto mismo con VBA sin que pase lo mismo.

Gracias. 

 

Buenas, Antoni... lo conseguí así:

Sub quitarsimbolo()

With Worksheets("Hoja1")

 

    For i = 2 To .UsedRange.Rows(.UsedRange.Rows.Count).Row

        If Cells(i, "A").Value Like "'*" Then

        Cells(i, "A").NumberFormat = "@"
        Cells(i, "A").Value = Right(Cells(i, "A").Value, Len(Cells(i, "A").Value) - 1)
        
        Cells(i, "A").Value = CDbl(Cells(i, "A").Value)


        End If


    Next

End With

End Sub
 

Quizás es un poco cutrecillo :)

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.