Hola buenas.
Como podria desde una macro ejecutar dos macros a la vez, siendo una de ellas Activex y la otra macro normal:
Sub Copia ()
En Sub
Private Sub CommandButton1_Click()
End With
End Sub
Salud2.....
//-->
Hola buenas.
Como podria desde una macro ejecutar dos macros a la vez, siendo una de ellas Activex y la otra macro normal:
Sub Copia ()
En Sub
Private Sub CommandButton1_Click()
End With
End Sub
Salud2.....
No entiendo.
Por orden. Las macros no son normales o activex. Lo que sí es así son los controles, que hay algunos que son ActiveX y otros normales. Esto entendiendo que la pregunta está en su sitio, que es Excel. En Access hay alguna variedad más.
Por otro lado, no se pueden ejecutar dos macros a la vez. La ejecución de Visual Basic para Aplicaciones es lineal y no permite ejecuciones en paralelo. Bueno, en realidad sería posible si llamas a un DLL programado en algún lenguaje que sí permita programación multihilo desde VBA, pero eso ya son palabras mayores, y no creo que sea lo que estás pidiendo.
Creo que lo mejor sería que reformules la pregunta, si puede ser poniendo un ejemplo, y, mejor aún, indicando en qué línea estás atascado.
Un saludo
Hola.
al leer tu pregunta: ¿Como ejecutar dos macros a la vez ? creo que no se puede pues VBA ejecuta linialmente
pero puedes dar la impresion que si
mira, me explico con el siguiente ejemplo-codigo
Option Explicit
Dim tiempo1 As Date
Dim tiempo2 As Date
Sub llamda()
Call rutinaTiempo
Call rutinaTiempo2
End Sub
Sub rutinaTiempo()
Hoja1.Range("A1").Value = Hoja1.Range("A1").Value + 1
tiempo1 = DateAdd("s", 10, Time)
Application.OnTime tiempo1, "rutinaTiempo"
End Sub
Sub rutinaTiempo2()
Hoja1.Range("A2").Value = Hoja1.Range("A2").Value + 1
tiempo2 = DateAdd("s", 10, Time)
Application.OnTime tiempo2, "rutinaTiempo2"
End Sub
Sub rutinaCancelar1()
On Error Resume Next
Application.OnTime tiempo1, "rutinaTiempo", , False
End Sub
Sub rutinaCancelar2()
On Error Resume Next
Application.OnTime tiempo2, "rutinaTiempo2", , False
End Sub
si ejecutas el procedimiento llamada, este "llama" a las macro rutinaTiempo y RutinaTiempo2 las cuales cada 10 segundos suma el valor de la celda A1 y A2 (respectivamente para cada procedimiento) por lo que da la impreson que las macros se ejecutan al mismo tiempo ( o por lo menos con una diferencia infinitesimal e inpersectible que da esa sensación)
podiras especificar la hora en especifico en la que quieres ejecutar ambas macros y pasarlas como valor en dichas macros: algo asi
sub llamas ()
tiempo="la hora que quieres"
call macro1(tiempo)
call macro2(tiempo)
end sub
sub macro1(ByVal tiempo)
end sub
sub macro2(ByVal tiempo)
end sub
PDT: los procedimientos cancelar son importantes o de no la macro se ejecutara siempre (hasta que no la pares con ellos)
PDT2: se que lo que expongo se desvia un poco del tema de lo que quieres, pero espero que te sirva de punto de partida. me dejas saber que tal te va y espero tambien no haberte liado mas
Andres Montaña
anfemonga @ gmail.com
quizas no fue la explicacion idonea de que se ejecute a la vez, logicamente primero una y despues otra.
Explicacion de nuevo, estas son las dos macros esta esta en hoja:
Dim hoja As String
Private Sub CommandButton1_Click()
Next A
End Sub
Private Sub resumen()
On Error Resume Next
With Sheets(hoja)
End With
End Sub
y esta en modulo:
Sub Copia ()
En Sub
Yo he probado de esta forma, con Call delante y sin el
Sub Ejecutar ()
CommandButton1_Click
Copia
En Sub
Da error la macro CommandButton1_Click " no se ha definido Sub o Function""
la macro Copia sin problemas se ejecuta
Salud2...