Saltar al contenido
View in the app

A better way to browse. Learn more.

Ayuda Excel

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Convertir texto a formato de números

publicado

Hola a todos los del foro

Requiero un favor de ustedes, con un macro que me convierta el dato de la columna D de la hoja TXT a número con dos decimales. Los números de esta columna todos ninguno tiene separador de decimales pero todos los últimos dos valores son decimales.

macro.xlsm

Ejemplo 

 D2 = "60225700 debe ser 602,257.00"

D3 = "16123300 debe ser 161,233.00"

de antemano muchas gracias y espero alguno me pueda ayudar.

 

Editado el por marcosab

Featured Replies

publicado
=TEXTO(VALOR(D2)*0.01,"0.00")

Una propuesta con fórmula por si es de interés, solo cambiar la coma por el punto y coma, de acuerdo a tu separador de argumentos.

Captura.jpg

 

Saludines_2

publicado

Hola.

Lamento que no puse atención a que necesitas el separador de miles.

Solo agrega la coma en el formato de VBA

        celda.NumberFormat = "#,##0.00"

O en la fórmula si lo requieres.

=TEXTO(VALOR(D2)*0.01,"#,##0.00")

 

publicado
  • Autor

Muchas gracias por el macro, un último favor con los valores que están en cero como puedo hacer para que también los cambie a formato número.

publicado

De acuerdo, si te interesan esos "0" cambia la sentencia por esta:

Sub convertirTextoANumerosDecimales()
    Dim celda As Range
    For Each celda In Range("D2:D" & Cells(Rows.Count, "D").End(xlUp).Row)
        If Len(celda.Value) >= 2 And IsNumeric(celda.Value) Then
            celda.Value = CDbl(Left(celda.Value, Len(celda.Value) - 2) & "." & Right(celda.Value, 2))
            celda.NumberFormat = "###0.00"
        ElseIf celda.Value = "0" Then
            celda.Value = 0
            celda.NumberFormat = "0.00"
        End If
    Next celda
End Sub

Saludines_3

publicado

Hola  a ambos dejo otra posible solución que contempla también tu nuevo requerimiento.

Private Sub CommandButton1_Click(): Application.ScreenUpdating = False
 With Hoja2
        For x = 2 To .Range("D" & Rows.Count).End(xlUp).Row
            longitud = Len(Range("D" & x))
            If longitud > 1 Then
                .Range("D" & x) = Left(.Range("D" & x), longitud - 2) & "." & Right(.Range("D" & x), 2)
                .Range("D" & x) = .Range("D" & x) + 0
                .Range("D" & x).NumberFormat = "#,##0.00"
            Else
                .Range("D" & x) = .Range("D" & x) + 0
                .Range("D" & x).NumberFormat = "#,##0.00"
            End If
        Next x
    End With
End Sub

 

image.gif

publicado

Hola @JSDJSD

Excelente propuesta también. Aprovechando que andas también conectado y cambiando de tema con esta consulta, voy a subir una propuesta a otra consulta del foro:

asignacion-de-lotes-automaticamente

La estuve leyendo y por fórmulas cae en una referencia circular y le voy a recomendar al consultante una sentencia de VBA, tal vez si en un tiempo que tengas tienes alguna idea diferente. Esta curiosa la consulta, será divertido.

Voy para allá a escribir.

Saludines

Editado el por Israel Cassales

publicado
  • Autor
Cita

 

Muchas gracias a ambos, super agradecido. tema resuelto

publicado
hace 21 minutos , Israel Cassales dijo:

voy a subir una propuesta a otra consulta del foro:

Perfecto, pero lo veo mañana hoy ya no puedo, un saludo

Archivado

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.