Generador de números de pieza

Generador de números de pieza

Estoy intentando crear un generador de números de pieza para un gran proyecto en la escuela. Necesito poder utilizar la función =RANDBETWEEN(0,999999)para generar una parte del número de pieza. El problema es la actualización del =RANDBETWEEN(0,999999). Si hago referencia a la celda, todos los números de pieza terminarán con el mismo número aleatorio. Necesito una función que guarde el número aleatorio anterior en su lugar pero mantenga la capacidad de =RANDBETWEEN(0,999999)actualizarlo para generar un nuevo número para la siguiente parte. He estado buscando durante 2 días una manera de hacer esto. Espero que alguien pueda ayudar. No tengo experiencia con VBA y me gustaría mantener esto como una función para que pueda ser utilizada por todos los usuarios del equipo.

Respuesta1

No es una respuesta.

Tenga en cuenta que RAND(), RANDBETWEEN() y todas las funciones similares generarán un nuevo número para cada RECÁLCULO de una hoja de trabajo.

F9 o SHIFT+CTRL+F9 (en LibreOffice) inicia un recálculo, que hará que el problema sea visible para usted.

Tampoco habrá garantía de que los números generados sean únicos.


A continuación se muestra una función que PODRÍA ser un punto de partida para que una macro iniciada manualmente o con el teclado establezca una determinada celda en un número aleatorio de seis dígitos con ceros a la izquierda.

NO PROBADO (No hay Excel disponible, es probable que tenga al menos uno o dos errores)

función rndNum(celda)
  rndNum=WorksheetFunction.RANDBETWEEN(0,999999)
  si celda<>"" entonces
    Rango(celda).Value="'" & WorksheetFunction.TEXT(rndNum,"000000")
  terminara si
función final

Respuesta2

Puede crear una función con nombre, por ejemplo EVALen el administrador con nombre:

=LAMBDA(x,EVALUATE(x))

Ahora puedes invocar esto en tu hoja de trabajo a través de:

=EVAL("RANDBETWEEN(0,999999)")

Esto creará un número aleatorio que solo cambiará cuando vuelvas a aplicar esa fórmula en esa celda exacta.

Tenga en cuenta que esto hará que su libro de trabajo sea xlsm al guardarlo; de lo contrario, perderá la función nombrada (los números aleatorios permanecerán en su lugar).

información relacionada