Activar macro de manera continua

Tengo un botón que me activa un input box que me busca un dato en una base y si lo encuentra me selección en donde esta el dato hay manera de que cuando encuentre el dato y lo seleccione se active de nuevo la macro para buscar continuamente datos sin necesidad de apretar el botón

1 Respuesta

Respuesta
1

[Hola

Algunas cosas sobre lo que mencionas que necesitas:

- No has mostrado tu macro

- Si tu macro lo que hace es seleccionar una celda/valor y quieres que se active automáticamente después de su primera selección, entonces seleccionará otro y luego y otro, etc. con lo que perdería sentido una macro que seleccione.

- Dejando de lado el punto anterior, no mencionaste cuando debería parar de activarse esa macro, es decir, cuántas veces debe de funcionar.

Abraham Valencia

Debería parar cuando yo le pudiera dar cerrar sesión con un botón en el mismo libro

No has mostrado tu macro (ni mencionado nada sobre el segundo punto) pero en todo caso, hay más de una forma de detener una macro con otra macro pero creo que la más fácil de entender es en la que tu macros es parte de un bucle que usa "DoEvents" y la detienes con otra que usa "SendKeys":

Sub MacroPrincipal()
For x = 1 To 100000
    DoEvents
    'A partir de aquí lo que quieras
Next x
End Sub
Sub DetenerMacro()
Application.SendKeys "^{BREAK}"
End Sub

Claro que hay que tomar en cuenta que "SendKeys" es "inestable" (y que no siempre da resultado).

Comentas

Abraham Valencia

Private Sub CommandButton4_Click()
buscar = InputBox("Scanea el codigo que deseas buscar", "Buscar....")
If buscar = "" Then Exit Sub
'
col = "A" ' columna a buscar
col2 = "U" ' columna a pegar el dato encontrado
'
Set b = Columns(col).Find(buscar, lookat:=xlWhole, LookIn:=xlValues)
If Not b Is Nothing Then
f = b.Row
ActiveSheet.Cells(f, 21).Select
Cells(f, col2) = Cells(f, col)
Else
MsgBox ("EL CODIGO DE BARRAS NO SE ENCUENTRA EN LA BASE"), vbCritical, ""
Set busco = Nothing
End If
End SubPrivate Sub CommandButton4_Click()
buscar = InputBox("Scanea el codigo que deseas buscar", "Buscar....")
If buscar = "" Then Exit Sub
'
col = "A" ' columna a buscar
col2 = "U" ' columna a pegar el dato encontrado
'
Set b = Columns(col).Find(buscar, lookat:=xlWhole, LookIn:=xlValues)
If Not b Is Nothing Then
f = b.Row
ActiveSheet.Cells(f, 21).Select
Cells(f, col2) = Cells(f, col)
Else
MsgBox ("EL CODIGO DE BARRAS NO SE ENCUENTRA EN LA BASE"), vbCritical, ""
Set busco = Nothing
End If
End Sub

Esto es lo que hace mi macro a través de un inputbox te dice que scanes el código de barras y lo busca y te selecciona en donde se encuentra, como puedo hacer para que cuando lo encuentre y lo seleccione se active otra vez el inputbox de manera continua

[Hola

Si colocar todo tu código dentro de un "For - Next", como ya te indiqué, y usando además "DoEvents" por ejemplo antes del "Next", entrarás a un bucle que hará lo que deseas y que pararás activando una macro como la del otro ejemplo que te he enviado.

Abraham Valencia

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas