Macro para convertir fórmulas en valores

Tengo una hoja de excel que genera números aleatorios, el problema es el siguiente, yo quiero que una vez generado el numero aleatorio automáticamente se convierta en un valor fijo,

Tengo unas 150.000 filas y 72 columnas...

=SI(ESBLANCO($B$2);;ALEATORIO.ENTRE(1;3))

Esta fórmula lo que hace es que si en la casilla b2 no hay dato, no hace nada pero si coloco un dato entre 1 y 3 en la casilla donde tengo esta fórmula me saca un numero aleatorio entre 1 y 3

La idea del macro es que automáticamente, la columna que tiene esta fórmula aleatoria pase una vez que yo pongo dato en b2 a valor fijo, estoy hay que repetirlo desde b2 hasta bt2, en las 150.000 filas.

2 Respuestas

Respuesta

Lo que tienes, es una fórmula, NO una macro.
Una Macro que hace lo que pides, es como la siguiente.

  Sub AleatorioValoresNoBlancos()

Sub AleatorioValores()
'
'
Dim celda As Range
Dim f, c, fini, ffin, cini, cfin As Integer
fini = 2 ' Ubicación de la fila del primer dato que será evaluado
cini = 3 ' Ubicación de la columna del primer dato que será evaluado
ffin = 10 ' Ubicación de la fila del último dato que será evaluado
cfin = 6 ' Ubicación de la columna del último dato que será evaluado, + 1

    For c = cini To cfin Step 2
        For f = fini To ffin
            If (Not Worksheets("Hoja1").Cells(f, c).Value = Empty) Then
                Cells(f, c + 1).Value = Int((3 * Rnd()) + 1)
            End If
        Next
    Next
End Sub

Si necesitas ayuda para insertarla en tu proyecto, envíame otro mensaje.

Respuesta
1

He leído por ahí y veo, y veo que con este macro puedo convertir columnas a valores

Sub Valores()
'Por.Dante Amor
    With [C1:K17]
        .Value = .Value
    End With
End Sub

pero solo quiero que se haga en las columnas que tiene un valor en b2... c2...d2... asi hasta las 72 columnas que quiero cambiar...

Que habría que hacerle a ese macro.

He podido hacer lo que pretendía llamado a los macros con la siguiente función

  If Target.Address = "$B$2" Then Macro1

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas