Macro no incluir decimales como parte del número

Es un gusto saludarlos nuevamente.
Solicito por favor su ayuda para el siguiente problema:
En hoja "N1" columna "D", tengo una serie de números, estos números se encuentran con decimales, pero al ejecutar la macro el todo el decimal
forma parte del número entero, por ejemplo, tengo 232,123, al ejecutar la macro queda como 232123, y necesito que solo quede 232.

Agrego los códigos y destaco donde se produce el problema:

Sub Datos ()

    Application.ScreenUpdating = False
    Set h1 = Sheets("N1")
    Set h2 = Sheets("N2")
    '
    u = h2.Range("E" & Rows.Count).End(xlUp).Row
    If u = 2 Then u = 3
    h2.Range("A3:M" & u).ClearContents
    '
    n = 0
    ren = 1

    For i = 3 To h1.Range("E" & Rows.Count).End(xlUp).Row
        For j = Columns("E").Column To Columns("V").Column
            If h1.Cells(i, j) <> "" Then
                h1.Cells(i, j).Copy
                u2 = h2.Range("E" & Rows.Count).End(xlUp).Row + 1
                h2.Cells(u2, "E").PasteSpecial Paste:=xlPasteValues, Transpose:=True   
                h2.Cells(u2, "K") = h1.Cells(i, "A")
               H2.Cells(u2, "F") = h1. Cells(i, "d") ' aca coloca el numero, pero considera los decimales como parte del entero
                h2.Cells(u2, "M") = "IVA"
                h2.Cells(u2, "C") = h1.Cells(ren + 1, "B") & "-" & h1.Cells(ren, j)
            End If
        Next
        n = n + 1
        If n = 38 Then
            ren = ren + 41
            i = i + 3
            n = 0
        End If
    Next

End Sub

1 respuesta

Respuesta
1

No extiste ninguna razón para hacer lo que comentas, además acabo de probar tu código y no sucede esto. Debieras dejar una imagen de la hoja N1 para observar el formato de la col D. Revisa también el formato de la col F en hoja N2.

¿No tendrás alguna otra macro que cambie estos valores? Mejor me envias copia de esas hojas para observar qué sucede. Mi correo aparece en mi sitio que dejo al pie.

Lo que sí le falta a tu macro es quitar el modo titilante de copiado al finalizar. Agrega esta línea antes del End Sub:

Application.CutCopyMode = False

No sé si recibiste mi mail, así que te paso la instrucción aquí:

Al final, tenés una instrucción para quitar los espacios a cada celda ... esa es la que te convierte erróneamente.

Para evitarlo, y considerando que sabemos que la col F viene de una fórmula y x lo tanto no tendrá espacios, cambia la del trim:

Estas son las líneas finales:

For Each celda In rango
If celda.Column <> 6 And celda.Row > 2 Then celda.Value = Trim(celda)
Next
End Sub

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas