hacer correr dosmacros al mismo tiempo

15/10/2006 - 01:02 por Edixon | Informe spam
Hola grupo como estan necesito una vez mas de su ayuda.

1. Tengo una macro que cuando introduzco un nombre el A4 de la hoja 2
al pulsar una imagen que le asigne una macro que esta en el modulo 1 no
directamente en elmodulo de la hoja se hace un autofiltro en la hoja 1
y me trae a la hoja 2 los datos correspondientes a esa nombre.

2. Por otro lado tengo otra macro que se la asigne directamente al
módulo de la hoja 2 y cuando introduzco el nombre en A4 de la hoja 2 y
pulso Enter me trae la imagen correspondiente a ese nombre (donde la
imagen esta en una carpeta en C:\\).

Bueno lo que quiero es que las dos se ejecuten al mismo tiempo despues
que introduzca el nombre en A4 el la hoja 2 y presione Enter si
necesidad de tener que presionar luego la imagen para que ejecute la
macro 1.

Yo coloque las dos en el módulo de la hoja dos pero solo se ejecuta la
macro dos despues de dar Enter.

macro 1 Private Sub macro1()
Dim criterio As String


criterio = Cells(4, 1).Text
Range("B4").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.ClearContents
Sheets("Hoja1").Select
Selection.AutoFilter Field:=2, Criteria1:=criterio
Range("C4").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("Hoja2").Select
Range("B4").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone,
SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
Range("C10").Select
End Sub

macro 2 esta del grupo google

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Target.Address = "$A$1" Then Exit Sub
Dim De_donde As String, Foto As Object, _
Arriba As Double, Izquierda As Double, Ancho As Double, Alto
As Double
Application.ScreenUpdating = False
On Error Resume Next
Me.Shapes("LaFoto").Delete
De_donde = "C:\Mis imagenes\" & [a1] & ".jpg"
If Dir(De_donde) = "" Then Exit Sub
Set Foto = Me.Pictures.Insert(De_donde)
With Me.Range("f1:h21")
Arriba = .Top
Izquierda = .Left
Ancho = .Offset(0, .Columns.Count).Left - .Left
Alto = .Offset(.Rows.Count, 0).Top - .Top
End With
With Foto
.Name = "LaFoto"
.Top = Arriba
.Left = Izquierda
.Width = Ancho
.Height = Alto
End With
Set Foto = Nothing
End Sub

Gracias por su ayuda de antemano

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
15/10/2006 - 05:37 | Informe spam
hola, !


1. Tengo una macro que... al pulsar una imagen... hace un autofiltro en la hoja 1 y me trae a la hoja 2 los datos correspondientes...
2. ... tengo otra macro... modulo de la hoja 2... en A4... me trae la imagen correspondiente...
... lo que quiero es que las dos se ejecuten al mismo tiempo despues que... A4... sin necesidad... presionar luego la imagen [...]



1) [hasta donde se]... no es posible ejecutar DOS macros de manera -precisa y exactamente- 'simultanea' :-(
2) lo que puedes hacer, es ejecutarlas 'una despues de la otra'...
SI... luego de los eventos de 'A4' en la hoja2 -> 'llamas' a la otra macro [o repites su codigo antes de terminar el evento] ;)

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#2 Edixon
15/10/2006 - 20:49 | Informe spam
eso me sirve no importa que sea al mismo tiempo puede ser una despues
de la otra lo que quiero es que despues de colocar el nombre en A4 y
dar Enter ellas se ejecuten no importa que sea una despues de la otra
como hago para programarla
Respuesta Responder a este mensaje
#3 Edixon
15/10/2006 - 20:59 | Informe spam
AHHHHHHHH y tambien lo que pasa es que por ejemplo si solo escojo la
macro 1 y lo coloco en el modulo de lahoja 2 el dar Enter despues de
colocar el nombre en A4 no se ejecuta solo tengo que insertar una
imagen y asignarle esa macro para que despues que lo pulse es que se
ejecute. como hago para que se ejecute despues de dar enter
Respuesta Responder a este mensaje
#4 Héctor Miguel
15/10/2006 - 21:15 | Informe spam
hola, !

eso me sirve no importa que sea al mismo tiempo puede ser una despues de la otra
lo que quiero es que despues de colocar el nombre en A4 y dar Enter ellas se ejecuten
no importa que sea una despues de la otra, como hago para programarla



de acuerdo con la propuesta anterior, concretamente la parte que 'dice'...
... luego de los eventos de 'A4' en la hoja2 -> 'llamas' a la otra macro [o repites su codigo antes de terminar el evento] ...



lo que necesitas hacer, es...
al final del procedimiento: -> Private Sub Worksheet_Change(ByVal Target As Range)
y... ANTES de la instruccion -> End Sub

op1: -> 'llamas' a la otra macro -> [la que tienes asignada a la imagen]...

op2: -> repites su codigo antes de terminar el evento [repetir el codigo de la macro asignada a la imagen]...

lo que no es -muy- 'claro'... es el por que declaras el procedimiento/macro asignada a la imagen como 'Private' -?-
-> Private Sub macro1()

con esa instruccion, la 'macro1' SOLO puede ser 'llamada' dentro del mismo procedimiento donde esta 'escria' ;)
[entonces]...
o... la tienes escrita en el mismo modulo de codigo donde manejas el evento 'worksheet_change'
o... la mueves a un procedimiento 'general'... Y LE QUITAS la declaracion 'Private' ;)

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#5 Edixon
15/10/2006 - 23:45 | Informe spam
Gracias por tu ayuda de verdad lo hice pero me crea error, y la macro
de laimagen es la dos y en la otra no va elPrivate esofue un error de
mi parte.

hice lo que dijiste pero ahora cuando me llama los datos
correspondientes a un nombre (macro 1) no lo hace crrectamente sino
existe elnombre igual me llama unos datos
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida