Foros del Web » Soporte técnico » Ofimática »

Problema con macro....

Estas en el tema de Problema con macro.... en el foro de Ofimática en Foros del Web. Hola a todos! tengo esta macro q transcribo: Private Sub Worksheet_change(ByVal target As Range) If target.Address = Range("b22") Then ruta = Range("B7") ejecutable = Range("B6") ...
  #1 (permalink)  
Antiguo 02/10/2009, 15:49
 
Fecha de Ingreso: diciembre-2006
Mensajes: 32
Antigüedad: 17 años, 5 meses
Puntos: 0
Problema con macro....

Hola a todos! tengo esta macro q transcribo:

Private Sub Worksheet_change(ByVal target As Range)
If target.Address = Range("b22") Then
ruta = Range("B7")
ejecutable = Range("B6")
uf = Range("B" & Cells.Rows.Count).End(xlUp).Row
For fil = 22 To uf
arch = Range("B" & fil) & ".swf"
arch = ruta & arch
Abrir = Shell(ejecutable & " " & arch, vbMaximizedFocus)
Next fil
End If
End Sub

en la celda B22 no le ingreso directamente el dato, lo ingreso en otra celda y esta toma el valor por formula, será eso q no lo hace andar automatico???

Que debo de cambiar en el codigo para que al ingresar el dato en la celda de ingreso, cuando esta celda B22 tome el valor, me ejecute la macro???

Por favor pido ayuda porq me esta volviendo loco jaja...ya no se q mas hacer...saludos

Fernando
  #2 (permalink)  
Antiguo 03/10/2009, 07:53
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años, 1 mes
Puntos: 88
Problema con macro....

Hola! Fernando. En la ayuda de VBA puedes leer:

"... El evento Change ocurre cuando alguna celda de la hoja de cálculo es modificada por el usuario o por un vínculo externo. Este evento no ocurre si las celdas se modifican al volver a calcular ..."

De modo que en "target" no tienes a [B22] sino a la celda a la que le has entrado el dato: ¿Qué celda es ésa?

Por otra parte, la línea:
If target.Address = Range("b22") Then

JAMÁS te funcioná correctamente... y no sólo porque target no es [B22], sino porque lo correcto hubiese sido:
If Target.Address = "$B$22" Then

Comenta cual es la celda que se modifica y -además- evalúa esta alternativa:

Código PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
If 
Target.Address <> "$B$22" Then Exit Sub
For Each Celda In Range([b22], [b65536].End(xlUp))
  
arch = [b7] & Celda ".swf"
  
Abrir Shell([b6] & " " archvbMaximizedFocus)
Next Celda
End Sub 

Saludos, Cacho.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:55.