Mantener cero a la izquierda en columnas con números

tengo un dilema estoy insertando numero en una columna de esta manera 03 y coloco Selection.NumberFormat = "00" para mantener los ceros a la izquierda, el problema es que cuando exporto a otro libro solo sale 3 y no 03 y probe cambiando el formato a texto Selection.NumberFormat = "@"  pero sigue saliendo solo 3 como puedo hacer que se inserte como 03 y cuando se copie siga manteniendo el formato de 03

Respuesta
1

James Bond, gracias por la ayuda me hiciste ver el tema de otro punto de vista ya encontré la solución te comparto por si lo necesitas algún día.

With Range("D4").CurrentRegion
UltimaFila = .Rows(.Rows.Count).Row
Range("B4:B" & UltimaFila).Formula = "=IF(D4,""05"",0)"
Range("B4:B" & UltimaFila).Value = Range("B4:B" & UltimaFila).Value
Range("B4:B" & UltimaFila).Select
Selection.NumberFormat = "00"
Call numeros_ceros

Sub numeros_ceros()
Dim Tmp As String
For Each c In Selection
Tmp = c.Text
c.NumberFormat = "@"
c.FormulaR1C1 = Tmp
Next
End Sub

2 respuestas más de otros expertos

Respuesta
1

¿Y si lo estas seleccionando?
Acabo de hacer este pequeño ejemplo y corre sin problemas:

Sheets("Hoja1").Select
Cells(1, 1) = TextBox1.Text
Cells(1, 1).Select
Selection.NumberFormat = "00"
Respuesta
1

Pues mira yo lo hice así y lo copia bien como puedes ver

y esta es la macro que use

Sub test()
Range("b2").CurrentRegion.NumberFormat = "00"
Range("b2"). CurrentRegion. Copy
Workbooks("libro2"). Sheets("hoja1"). Range("b2"). PasteSpecial
End Sub

Si funciona en un rango de celda el problema es que yo estoy usando esa fórmula para inserta valores según rango de columna basándome en la siguiente fórmula y no me muestra con el formato que deseo me muestra el valor en celda 05 pero al copiar en otro excel con pegado especial me da igual 05 pero en la barra de fórmulas muestra 5 y cuando lo subo a donde deseo lo también lo como 5 y no como 05

With Range("C4").CurrentRegion
UltimaFila = .Rows(.Rows.Count).Row
Range("E4:E" & UltimaFila).Formula = "=IF(C4,""05"",0)"
Range("E4:E" & UltimaFila).Value = Range("E4:E" & UltimaFila).Value

En la barra fórmula siempre te mostrara 5 y no 05 eso es porque el formato solo se aplica en la celdas y no en la barra, no se a donde lo estés subiendo, lo que si se es que en ocasiones la configuración de otros sistemas no admiten 0 antes del numero o bien se le tiene que indicar en la configuración que acepte números con iniciales 0, esta es una modificación a tu macro pruébalas

Sub testa()
With Range("C4").CurrentRegion
UltimaFila = .Rows.Count
    With Range("E4").Resize(UltimaFila, 1)
    .Formula = "=IF(C4,""05"",0)"
    .Value = .Value
    .NumberFormat = "00"
End With
Workbooks("libro1").Sheets("hoja1").Range("e4").CurrentRegion.Copy
Workbooks("libro3").Sheets("hoja1").Range("e4").PasteSpecial xlPasteValuesAndNumberFormats
End With
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas