Macro en que aparezca mensaje

Buen día
Como puedo hacerle para que la macro pregunte que celda elegir para cumplir la condición
ya que no siempre quiero elegir la misma que es f3
como puedo hacer para elegir varias celdas y que aplique la misma macro
Public Sub Worksheet_Calculate()
Do
ActiveSheet.Calculate
Loop Until Range("F3").Value = 5
End Sub
Gracias

1 respuesta

Respuesta
1
Me parecen interesantes tus necesidades ya que no se que quieres hacer, si quieres que calcule evaluando varias celdas lo puedes hacer con and o or osea:
Loop Until Range("F3").Value = 5 and|or _
                 Range("G10")<>"DFR" and|or _
                 Range("A1")=154
Espero que te sirva para lo que quieres hacer, suerte, hasta pronto.
Grecko
Esta muy bien tu respuesta pero lo que quiero que haga la macro no es que me de opciones por si misma
Sino que yo le indique en una respuesta la celda
Ejemplo
Que celda desea elegir
Y que yo le pueda poner cualquiera
Así pueda ser la celda IV65536
celda=inputbox("que celda quieres","Celda","IV65536")
Celda ahora es la celda que tecleas
Suerte, hasta pronto
Y como puedo ubicar
celda=inputbox("que celda quieres","Celda","IV65536")
dentro de esta macro
Public Sub Worksheet_Calculate()
Do
ActiveSheet.Calculate
Loop Until Range("F3").Value = 5
End Sub
Ya lo intente y no puedo
Gracias por tu paciencia
¿Cómo puedo ubicarla? Es tu pregunta, la mía es ¿qué es lo que supones que hace esa macro?
Bien, esta macro calcula la misma hoja tantas veces como no sea F3 igual a 5
¿Esa es tu idea?

Caso 1: si quieres que te preginte una sola vez la celda que se evalúa entonces debe ser así:
Public Sub Worksheet_Calculate()
celda As Range
celda=inputbox("que celda quieres","Celda","IV65536")
Do
ActiveSheet. Calculate
Loop Until Range(celda).Value = 5
End Sub

Caso 2: si quieres que te pregunte cada vez que evalúe la celda hasta que encuentre una que cumpla con la condición de tener el valor 5 y antes de calcular, entonces sería:
Public Sub Worksheet_Calculate()
Celda As Range
Do
celda=inputbox("que celda quieres","Celda","IV65536")
ActiveSheet.Calculate
Loop Until Range("F3").Value = 5
End Sub
El Caso 3: sería si quieres que sea después de calcular, sería después de la línea ActiveSheer. Calculate
Espero que te sirva para lo que quieres ¡En realidad no se que quieres.
Ya encontré la macro
Sub paso2()
Dim CRITERIO As Single
CELDA = InputBox("INDIQUE LA CELDA A UTILIZAR")
CRITERIO = 0
Do
Randomize
If Range(CELDA) = 0 Then Exit Sub
Calculate
Loop
End Sub
La quiero mejorar como puedo acelerar el comando Calculate
para que me acelere la opción de aleatorio
otra pregunta sabes cuantas opciones distintas por minuto te da la función aleatorio
por tu paciencia gracias
Ok mira, entiendo que lo que quieres hacer es tener la mayor cantidad de números aleatorios en el menor tiempo posible por otro lado lo estas haciendo con macros desde excel creo que sería mejor hacerlo desde la macro y mostrarlo en excel, ya que excel se tarda en actualizar los datos en pantalla y por eso te sugiero esta macro.
Sub paso2()
Application.ScreenUpdating = False
Randomize
Lin = 1
Lin_Can = 1
Do
Cells(Lin_Can, 1) = Int((49 * Rnd) + 1)
cont = cont + 1
Lin_Can = Lin_Can + 1
seg = Format(Now(), "ss")
If segant <> seg Then
Cells(Lin, 3) = segant
Cells(Lin, 4) = cont
cont = 0
Lin = Lin + 1
segant = seg
End If
Loop
End Sub
Esta macro la puedes utilizar en una hoja en blanco ya que te pone los números aleatorios en la columna 1, en la columna 3 te pone el segundo y en la 4 la cantidad de números aleatorios que te calculo en el segundo de la columna 3, utilizo ScreenUpdating =False para que excel no consuma tiempo en presentar información mientras corre la macro.
Las opciones distintas por minuto, que me arrojó en promedio en mi pc son 1,300 del 1 al 49
Me genera un error 1004 en esta linea
Cells(Lin_Can, 1) = Int((49 * Rnd) + 1)
¿No te genera datos?
Por que no es que se trabe, sino que sigue generando datos hasta que la paras manualmente, intencionalemete no le puse ningún control para finalizar

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas