Macro para Dividir el contenido de toda una columna, pero ahora, entre 100.

jazzkoba hizo esta pregunta, pero en su pregunta el divisor era entre mil. Lo que ocupo saber, la macro que conserve los dos decimales (y que no me lo redondee). Por ejemplo en D1: 1,080.71 que sea 10.80 y D2: 25,100.00 que sea 251, y que D3: 2,505.25 sea 25.05

Adjunto los dos aspectos de la respuesta a "jazzkoba" de "todoexpertos", ¿se le puede hacer una modificación a esta macro para conservar los dos decimales a como lo sugiriera al inicio?

Posiciónate en la primera celda de la columna que quieras procesar y después ejecuta esta macro.
Sub ejemplo()
'por luismondelo
columna = ActiveCell.Column
Cells(65000, columna).End(xlUp).Offset(1, 0).Value = "end"
Do While ActiveCell.Value <> "end"
ActiveCell.Value = Round(ActiveCell.Value / 1000, 0)
ActiveCell.NumberFormat = "#,##0"
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.ClearContents
End Sub
-------------------------------------------------------------
Entonces para que siempre trabaje en la columna P esta sería la macro:
Sub ejemplo()
'por luismondelo
range("p65000").End(xlUp).Offset(1, 0).Value = "end"
range("p1").select
Do While ActiveCell.Value <> "end"
ActiveCell.Value = Round(ActiveCell.Value / 1000, 0)
ActiveCell.NumberFormat = "#,##0"
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.ClearContents
End Sub

2 Respuestas

Respuesta
1

Tienes que cambiar

#,##0

por:

##,##0.00

y esto:

ActiveCell.Value = Round(ActiveCell.Value / 1000, 0)

por:

ActiveCell.Value = Round(ActiveCell.Value / 100, 0)
Respuesta
1

.23.01.17

Hola, Mario

En estos casos prefiero mantener el número a dividir en una variable de memoria, para que puedas cambiarla con facilidad:

Sub ejemplo()
'por luismondelo  
Divisor = 100 ' colocas aquí el valor a utilizar
'  
columna = ActiveCell.Column
Application.ScreenUpdating = False
Cells(65000, columna).End(xlUp).Offset(1, 0).Value = "end"
Do While ActiveCell.Value <> "end"
    ActiveCell.Value = Round(ActiveCell.Value / Divisor, 0)
    ActiveCell.NumberFormat = "#,##0.00"
    ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.ClearContents
End Sub

Dicho esto, menciono que puedes evitar el uso de la rutina y tener toda la lista dividida (o afectada por otros operaciodes como, suma, resta, multiplicación, etc) en pocos pasos:

Si querés hacerlo directamente sobre la misma lista, sin usar fórmulas, haz lo siguiente:

  1. En cualquier celda libre, ingresá 100 y dale ya el formato que quieras que tenga tu lista.
  2. Copia esa celda
  3. Seleccioaá toda la lista a modificar
  4. Con Botón derecho del mouse, selecciona la opción "Pegado Especial"
  5. En la ventana que sale elege la opción "DIVIDIR"
  6. Dale ACEPTAR

Listo! La lista quedará divida por 100 y conservando los dos decimales.

Espero que te sirva y, en tal caso, agradeceré que califiques mi contribución- o escríbeme de nuevo aquí, si necesitas más apoyo con esto.

Un abrazo

Fernando

.

¡Gracias! eres un crack, que haríamos si no hubieran personas como tú. saludos.

.

Un placer ayudar, compartiendo lo que sabemos.

Un abrazo

Fer

.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas