Ayuda para crear una tabla de 400 valores

Necesito que excel me cree una tabla con 400 valores que han de estar comprendidos entre dos valores iniciales. ¿Alguien podría ayudarme?

1 respuesta

Respuesta
1
Creo que tu solución está en la función aleatorio().
Esta función devuelve un número aleatorio mayor o igual que 0 y menor que 1, distribuido uniformemente.
Para generar un número real aleatorio entre a (menor) y b (mayor), usá:
=ALEATORIO()* (b-a+1) + (a)
Para generar un número entero aleatorio entre a y b (inclusive ambos) , usá:
=entero(ALEATORIO()* (b-a+1) +a)
Cada vez que se calcula la hoja de cálculo, se devuelve un número aleatorio nuevo.
Podes pasar de fórmulas a valores, todo el rango, mediante :
1)Click en cualquier celda con fórmulas
2)Ctrl+* , para seleccionar todo el rango
3)ctrl+c (edicion/copiar) , para copiar .
4) Edicion/Pegado Especial/Valores.
Creo que podrá servirme. ¿Sabes si puedo meterlo dentro de una macro para que al pulsar en una celda, me cree la tabla con los 400 valores automáticamente?.
Por supuesto.
Sigue los pasos.
(1) Ctrl+U (Abre una nueva PLanilla Archivo/Nuevo...)
(2) Alt+F11 para ir a Visual Basic (Herramientas /Macro /Editor de Visual Basic )
(3) En la Ventana de Proyecto, haz doble click en Hoja1. El cursor se posicionará en la ventana de código.
Pega el siguiente código :
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
Dim rango As String, celda As String
Dim Minimo As Long, Maximo As Long
'*** se puede seleccionar otro rango ,
'*** puede ser un nombre de rango
rango = "a1:a400"
'*** se puede seleccionar un celda de CLICKEO diferente de $A$1
celda = "$A$1"
'*** minimo y maximo
Minimo = 20
Maximo = 1000
If Target.Address = celda Then
Selection.Offset(1, 0).Select
'*** selecciona rango ***
Range(rango).Select
'*** pone formula ***
Selection.FormulaR1C1 = "=INT(RAND()*(" & Maximo & "-" & Minimo & "+1)+" & Minimo & ")"
'*** copia rango y lo pega como valor ***
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Range("A2").Select
Application.CutCopyMode = False
End If
End Sub
(4) Cada vez que hagas un "doble click" en la celda A1, se va a completar el rango a1:a400 con números enteros comprendidos entre un mínimo (20) y un máximo (1000).
Se puede cambiar, la celda de doble click (a1), el rango a completar, el máximo y el mínimo.
Cada vez que hagas doble click en la celda elegida, vas a notar que se generan nuevos números.
Espero que cumpla tus expectativas.
Estoy a tu disposición por cualquier ampliación o modificación.
Suerte.
La remitida no es la única opción .
Otra posibilidad es usar "Worksheet_SelectionChange" que es muy útil.
En el Visual Basic (Alt+F11).
Haz Doble Click en la "Hoja2" dentro de la Ventana de Proyecto.
Y el la ventana de código, vuelca lo siguiente.
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Dim celda As String
celda = "$A$1"
If Target.Address = celda Then
If IsEmpty(ActiveCell.Value) Then
MsgBox "celda vacia"
Else
MsgBox "celda con valores : " & ActiveCell.Value
End If
End If
End Sub
Cuando posiciones el cursor en la celda A1, saldrá un mensaje indicando si tiene o no valor.
En lugar del mensaje se podría, por ejemplo, ejecutar una rutina, si la celda está vacía.
Otros eventos pueden analizarse, seleccionando, en la ventana de código el objeto WORKSHEET y de la lista PROCEDIMIENTO, el evento deseado.
No dudes en probar la grabadora de macros, para estudiar el código que se genera. Es la mejor manera de aprender. Y si precisas un libro, en mi opinión el mejor es "Excel visual basic for aplications, Step by Step" de Microsoft Press (de la version de Excel que tengas).
Suerte.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas