Al abrir un libro

22/08/2009 - 09:11 por José Rafael | Informe spam
Necesito modificar el código para que cuando quiero abrir un libro me avise
si ya está abierto y vaya a la hoja que le pida o en su caso, sino está
abierto lo abra y vaya a la hoja que le pida.
Este es el código que tengo y me vale para abrir pero no para evitar el
mensaje de que ya está abierto. Gracias

Sub Botón17_AlHacerClic()
Workbooks.Open Filename:= _
"C:\Documents and Settings\hes040\Mis documentos\lISTADO Nº 9 DE
TODOS LOS CLIENTES AL 30-06-09.xls"
Sheets("Ficha").Select
Range("J1").Select
End Sub

Saludos
José Rafael - Valencia (España)

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
22/08/2009 - 09:51 | Informe spam
hola, José Rafael !

prueba con los hipervinculos (y te olvidas de comprobar primero si ya esta abierto o no) p.e.

Sub Botón17_AlHacerClic()
ActiveWorkbook.FollowHyperlink _
"c:\documents and settings\hes040\mis documentos\listado n° 9 de todos los clientes al 30-06-09.xls"
Worksheets("fichas").Select
Range("j1").Select
End Sub

saludos,
hector.

__ OP __
Necesito modificar el codigo para que cuando quiero abrir un libro me avise si ya esta abierto
y vaya a la hoja que le pida o en su caso, sino esta abierto lo abra y vaya a la hoja que le pida.
Este es el codigo que tengo y me vale para abrir pero no para evitar el mensaje de que ya esta abierto...

Sub Botón17_AlHacerClic()
Workbooks.Open Filename:= _
"C:\Documents and Settings\hes040\Mis documentos\lISTADO Nº 9 DE TODOS LOS CLIENTES AL 30-06-09.xls"
Sheets("Ficha").Select
Range("J1").Select
End Sub
Respuesta Responder a este mensaje
#2 José Rafael
22/08/2009 - 22:36 | Informe spam
Hola Héctor:
No sé si me falta algo o hago algo mal, el caso es que poniendo tu código me
aparecen dos tipos de mensaje de error:
Cuando empiezo abriendo el libro "Pantalla para trabajar con el portátil" y
dandole al botón con la macro en cuestión para que me abra el otro libro
"listado n° 9 de todos los clientes al 30-06-09.xls", me sale el siguiente
aviso:

Se ha producido el error '-2147221014(800401ea)' en tiempo de ejecución:
No se puede abrir el archivo especificado.

Si ya lo tengo abierto y vuelvo a darle al botón me sale este otro:

Se ha producido el error '432' en tiempo de ejecución:
No se encontró el nombre del archivo o de la clase durante la operación de
automatización.

gracias por tu ayuda

José Rafael


"Héctor Miguel" escribió en el mensaje
news:
hola, José Rafael !

prueba con los hipervinculos (y te olvidas de comprobar primero si ya esta
abierto o no) p.e.

Sub Botón17_AlHacerClic()
ActiveWorkbook.FollowHyperlink _
"c:\documents and settings\hes040\mis documentos\listado n° 9 de todos
los clientes al 30-06-09.xls"
Worksheets("fichas").Select
Range("j1").Select
End Sub

saludos,
hector.

__ OP __
Necesito modificar el codigo para que cuando quiero abrir un libro me
avise si ya esta abierto
y vaya a la hoja que le pida o en su caso, sino esta abierto lo abra y
vaya a la hoja que le pida.
Este es el codigo que tengo y me vale para abrir pero no para evitar el
mensaje de que ya esta abierto...

Sub Botón17_AlHacerClic()
Workbooks.Open Filename:= _
"C:\Documents and Settings\hes040\Mis documentos\lISTADO Nº 9 DE
TODOS LOS CLIENTES AL 30-06-09.xls"
Sheets("Ficha").Select
Range("J1").Select
End Sub




Respuesta Responder a este mensaje
#3 Héctor Miguel
23/08/2009 - 02:35 | Informe spam
hola, José Rafael !

(creo que) el asunto es sencillo... el libro al que llama la macro NO EXISTE !!!...
ahora que mencionas "pantalla para trabajar con el portatil"... => (posibles razones ???)

- la ruta NO es la misma en dos (o mas) equipos (???)
- el nombre NO es (exactamente) el mismo (???)
- (de plano) ese archivo NO existe (al menos... donde la macro lo esta buscando)

saludos,
hector.

__ OP __
No se si me falta algo o hago algo mal, el caso es que poniendo tu codigo me aparecen dos tipos de mensaje de error:
Cuando empiezo abriendo el libro "Pantalla para trabajar con el portatil" y dandole al boton
con la macro en cuestion para que me abra el otro libro "listado n° 9 de todos los clientes al 30-06-09.xls"
me sale el siguiente aviso:
Se ha producido el error '-2147221014(800401ea)' en tiempo de ejecucion:
No se puede abrir el archivo especificado.

Si ya lo tengo abierto y vuelvo a darle al botón me sale este otro:
Se ha producido el error '432' en tiempo de ejecucion:
No se encontro el nombre del archivo o de la clase durante la operacion de automatizacion...
Respuesta Responder a este mensaje
#4 José Rafael
23/08/2009 - 10:21 | Informe spam
Hola Héctor:
Estoy haciendo una "aplicación" para mis comerciales partiendo de una
pantalla principal correspondiente al libro "pantalla TRABAJAR CON EL
PORTÁTIL" con una sola hoja de momento, llamada "Principal", que está llena
de botones (20) para que, al pinchar en cada uno de ellos, "conduzca" al
usuario al libro/hoja que interese y que corresponde a uno de los botones.
En este caso el nº 17.

Así que el código que me pasaste:

Sub Botón17_AlHacerClic()
ActiveWorkbook.FollowHyperlink _
"c:\documents and settings\hes040\mis documentos\listado n° 9 de todos
los clientes al 30-06-09.xls"
Worksheets("Ficha").Select
Range("j1").Select
End Sub

... Está aplicado al botón llamado "Ficha/Consumo" que es el botón 17 del
código y se pretende que abra otro libro llamado "Listado nº 9 de todos los
clientes al 30-06-09.xls", su hoja "Ficha" y se sitúe en la celda J1. Lo que
yo pedía es que si ya estuviera abierto este libro, simplemente se
trasladara a la celda J1 y sino, lo abriera.
Yo estaba utilizando el código de una macro grabada que me abría el libro
pero que si ya estaba abierto me sacaba un mensaje de error diciendo que ya
estaba abierto el libro y bla,bla,bla que quiero evitar. El código está en
mi primer mensaje (post) sobre este asunto.
Creo haberte aclarado la situación para poder modificar el código
convenientemente pero sino te ruego me lo hagas saber y aprovecho para
agradecerte tu ayuda como siempre.
Saludos

José Rafael- Valencia (España)



"Héctor Miguel" escribió en el mensaje
news:
hola, José Rafael !

(creo que) el asunto es sencillo... el libro al que llama la macro NO
EXISTE !!!...
ahora que mencionas "pantalla para trabajar con el portatil"... =>
(posibles razones ???)

- la ruta NO es la misma en dos (o mas) equipos (???)
- el nombre NO es (exactamente) el mismo (???)
- (de plano) ese archivo NO existe (al menos... donde la macro lo esta
buscando)

saludos,
hector.

__ OP __
No se si me falta algo o hago algo mal, el caso es que poniendo tu codigo
me aparecen dos tipos de mensaje de error:
Cuando empiezo abriendo el libro "Pantalla para trabajar con el portatil"
y dandole al boton
con la macro en cuestion para que me abra el otro libro "listado n° 9 de
todos los clientes al 30-06-09.xls"
me sale el siguiente aviso:
Se ha producido el error '-2147221014(800401ea)' en tiempo de ejecucion:
No se puede abrir el archivo especificado.

Si ya lo tengo abierto y vuelvo a darle al botón me sale este otro:
Se ha producido el error '432' en tiempo de ejecucion:
No se encontro el nombre del archivo o de la clase durante la operacion
de automatizacion...




Respuesta Responder a este mensaje
#5 Héctor Miguel
23/08/2009 - 21:37 | Informe spam
hola, José Rafael !

(primero:) dejame comentar que (hasta donde se) los errores en tiempo de ejecucion -2147... (u 800xxx...)
indican que el codigo esta haciendo una "llamada" a un objeto/servicio/proveedor/control/... que:
- o bien no esta presente/visible/disponible/... al momento de su llamada
- o bien dicho control/objeto/servicio/... NO existe en el pc desde el que se ejecuta el codigo

de esta consulta, cuando mencionas...
Estoy haciendo una "aplicacion" para mis comerciales ...



- a que te refieres con tus "comerciales" ???
- te refieres a personal de ventas/comercializacion/... donde cada quien tiene su pc ?
- si cada uno tiene su pc, no es logico tambien que cada pc tiene su propio "arbol de directorios/carpetas" ???
- no cabria la posibilidad de que en todos los pc la ruta NO sea (exactamente) "la misma" ???

y cuando dices...
Asi que el codigo que me pasaste:
Sub Botón17_AlHacerClic()
ActiveWorkbook.FollowHyperlink _
"c:\documents and settings\hes040\mis documentos\listado n° 9 de todos los clientes al 30-06-09.xls"
Worksheets("Ficha").Select
Range("j1").Select
End Sub
... yo pedia... que si ya estuviera abierto este libro, simplemente se trasladara a la celda J1 y sino, lo abriera.



- ya comprobaste que TODOS los caracteres sean (exactamente) como estan en el pc donde se ejecuta ?
- "c:\documents and settings\<nombre del usuario>\... etc. etc. etc.
- el caracter "°" es exactamente el mismo ?
- no hay espacios de mas o de menos en toda la ruta y nombre del archivo ?

prueba abiendo "a mano" ese libro y consulta su ruta completa (p.e.) desde la ventana de inmediato en el editor de vba:
? activeworkbook.fullname
y luego copias/pegas ese resultado desde la ventana de inmediato al codigo entre las comillas del .FollowHyperlink

comentas (si encuentras) algun detalle mas significativo ?
saludos,
hector.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida