Ejecución de macro

01/09/2004 - 12:37 por Fernando Uranga | Informe spam
Muy buenas:

Necesito ejecutar una macro al abrir un fichero csv. He probado en
ThisWorkBook, evento Opne pero me lo ejecutra antes de abrir el fichero.

¿En dónde debo poner mi código?

Gracias.

Fernando Uranga
 

Leer las respuestas

#1 Fernando Arroyo
01/09/2004 - 15:07 | Informe spam
La única forma que se me ocurre es usando el evento WorkbookOpen del objeto Application. La cosa es algo complicada. Tienes que:

- crear un módulo de clase (Insertar->Módulo de clase)
- poner el siguiente código en dicho módulo:

Public WithEvents App As Application

Private Sub App_WorkbookOpen(ByVal Wb As Workbook)
If Wb.Name <> "Libro.csv" Then Exit Sub
'
'Aquí iría lo que necesites que se ejecute al abrir Libro.csv
'
MsgBox "Se ha abierto el libro ""Libro.csv""" 'Ejemplo
End Sub

- poner el siguiente código en el módulo del libro:

Dim miApp As New Clase1 'O como hayas llamado a la clase

Private Sub Workbook_Open()
Set miApp.App = Application
End Sub

- ejecutar éste último código (por ejemplo, grabando y cerrando el libro donde está y luego abriéndolo).

Tienes que tener en cuenta que es necesario ejecutar siempre el código en la sesión de Excel en que se vaya a abrir el fichero CSV. Esto lo puedes conseguir de (al menos) dos formas: poniendo el código en el libro de macros personal o guardándo el libro como el código como complemento y activándolo.
Un saludo.


Fernando Arroyo
MS MVP - Excel


"Fernando Uranga" escribió en el mensaje news:
Muy buenas:

Necesito ejecutar una macro al abrir un fichero csv. He probado en
ThisWorkBook, evento Opne pero me lo ejecutra antes de abrir el fichero.

¿En dónde debo poner mi código?

Gracias.

Fernando Uranga

Preguntas similares