Elegir valor aleatorio

27/09/2006 - 14:10 por E_MuNcH | Informe spam
Hola antes de nada,

Estoy haciendo una hoja para aprender idiomas, en la columna A, coloco
las palabras en un idioma, y en la B en el otro idioma. Estoy
programando un formulario para que me elija aleatoriamente un valor de
A, y yo lo tenga que escribir en el otro idioma, si es correcto me lo
dice, y si no, me muestra el valor correcto. Pero quiero que elija una
fila al azar, para que no salgan siempre las palabras en el mismo
orden. Existe alguna formula o variable en excel que coja dicho valor
al azar?

Saludos,

Preguntas similare

Leer las respuestas

#1 Conchavandito
27/09/2006 - 17:30 | Informe spam
Pero quiero que elija una
fila al azar, para que no salgan siempre las palabras en el mismo
orden. Existe alguna formula o variable en excel que coja dicho valor
al azar?




Se me ocurre hacer lo siguiente :

Al rango de celdas que contiene todas las palabras de la columna A
asignale un nombre, en este ejemplo le asigne el nombre "Idioma_A".
Luego agrega este código al evento o procedimiento que estas
implementando para que refresque la palabra a traducir:

Dim lista As Range
Set lista = Range("Idioma_A")
Item_Elegido = Round(0.5 + Rnd() * WorksheetFunction.CountA(lista), 0)
Palabra_elegida = WorksheetFunction.Index(lista, Item_Elegido, 0)
MsgBox Item_Elegido & " ) " & Palabra_elegida

Saludos
JH
Respuesta Responder a este mensaje
#2 E_MuNcH
28/09/2006 - 00:08 | Informe spam
No me funciona,
Yo lo estaba intentando con un contador que me cuente las filas,
después multiplicandolo por rnd, obtenía una fila, y a partir de ahí
listo. Este es el código,

Private Sub CommandButton1_Click()

Dim aleatorio

aleatorio = Int(filas * Rnd) + 1

TextBox1 = aleatorio

End Sub

Private Sub UserForm_Activate()

Range("a2").Select

Do While ActiveCell <> Empty
ActiveCell.Offset(1, 0).Select
filas = filas + 1
Loop

End Sub

El problema es que el valor de filas, no me lo coge el otro private sub
y no sé como hacerlo.

Al mismo tiempo, al depurar tu código me sale que el problema lo tengo
con el range? no tengo ni idea de que puede ser.

Gracias por la ayuda
Respuesta Responder a este mensaje
#3 Conchavandito
28/09/2006 - 00:40 | Informe spam
El problema es que el valor de filas, no me lo coge el otro private sub
y no sé como hacerlo.



Tu variable 'filas' debe ser definida como "global", para que tenga
alcance en todo tu formulario.

Al mismo tiempo, al depurar tu código me sale que el problema lo tengo
con el range? no tengo ni idea de que puede ser.



Si el error es el siguiente:
Run-Time error '1004':
Method 'Range' of object '_Global' failed

Se debe a que no has asignado un nombre al rango de celdas que contiene
las palabras de la columna A.
Suponiendo que estas correspondan a las celdas A2:A100, sigue estos
pasos:

i.Selecciona las celdas A2:A100
ii.Click en la caja de nombre (Lada izquierdo de la barra de fórmulas)
iii.Escribe el nombre que deseas asignarle, en mi ejemplo fue:
Idioma_A
iv. Enter

y prueba nuevamente el código que te envié.

http://www.contextures.com/xlNames01.html#NameBox

Saludos
JH
Respuesta Responder a este mensaje
#4 Conchavandito
28/09/2006 - 00:44 | Informe spam
El problema es que el valor de filas, no me lo coge el otro private sub
y no sé como hacerlo.



Tu variable 'filas' debe ser definida como "global", para que tenga
alcance en todo tu formulario.

Al mismo tiempo, al depurar tu código me sale que el problema lo tengo
con el range? no tengo ni idea de que puede ser.



Si el error es el siguiente:
Run-Time error '1004':
Method 'Range' of object '_Global' failed

Se debe a que no has asignado un nombre al rango de celdas que contiene
las palabras de la columna A.
Suponiendo que estas correspondan a las celdas A2:A100, sigue estos
pasos:

i.Selecciona las celdas A2:A100
ii.Click en la caja de nombre (Lada izquierdo de la barra de fórmulas)
iii.Escribe el nombre que deseas asignarle, en mi ejemplo fue:
Idioma_A
iv. Enter

y prueba nuevamente el código que te envié.

http://www.contextures.com/xlNames01.html#NameBox

Saludos
JH
Respuesta Responder a este mensaje
#5 E_MuNcH
28/09/2006 - 18:20 | Informe spam
Funciona a las 1.000 maravillas el comando que me pasaste, aunque yo lo
he adaptado. A mi formulario. De todas formas quería preguntarte como
puedo declarar las variables publicas, porque por mas que miro las
ayudas y demas, no he conseguido declararlas.

Saludos y muchas gracias, en cuanto tenga el código, lo dejo por
aquí.

rober


Conchavandito wrote:
> El problema es que el valor de filas, no me lo coge el otro private sub
> y no sé como hacerlo.

Tu variable 'filas' debe ser definida como "global", para que tenga
alcance en todo tu formulario.

> Al mismo tiempo, al depurar tu código me sale que el problema lo tengo
> con el range? no tengo ni idea de que puede ser.

Si el error es el siguiente:
Run-Time error '1004':
Method 'Range' of object '_Global' failed

Se debe a que no has asignado un nombre al rango de celdas que contiene
las palabras de la columna A.
Suponiendo que estas correspondan a las celdas A2:A100, sigue estos
pasos:

i.Selecciona las celdas A2:A100
ii.Click en la caja de nombre (Lada izquierdo de la barra de fórmulas)
iii.Escribe el nombre que deseas asignarle, en mi ejemplo fue:
Idioma_A
iv. Enter

y prueba nuevamente el código que te envié.

http://www.contextures.com/xlNames01.html#NameBox

Saludos
JH
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida