SoloCodigo
		Programación General => Visual Basic 6.0 e inferiores => Mensaje iniciado por: dloaizap en Viernes 10 de Noviembre de 2006, 15:32
		
			
			- 
				Hola a todos, 
 Estoy haciendo una aplicacion para capturar el evento de crear un nuevo libro en excel, esto debe ser muy sencillo, pero he tratado de hacerlo y me sale un error,
 
 mi codigo es el siguiente:
 
 modulo de clase:(clseSAP)
 
 Public WithEvents nuevoLibro As Application
 
 Private Sub nuevoLibro_NewWorkbook(ByVal Wb As Workbook)
 MsgBox ("El libro se ha creado")
 End Sub
 
 
 ThisWorkbook:
 
 Dim test As claseSAP
 
 Private Sub Workbook_Open()
 Set test.nuevoLibro = Excel.Application
 End Sub
 
 
 Al abrir el libro me sale el siguiente error en la
 linea "Set test.nuevoLibro = Excel.Application":
 
 Se ha producido el error '91' en tiempo de ejecucion
 
 Variable de objeto o bloque With no establecido
 
 
 Si alguien sabe como puedo corregir este error, le agradezco me ayude,
 
 Saludos
 
 Daniel Loaiza
- 
				Hola, no entendi muy bien la cuestión, pero el error es por que no estas creando una instancia de la clase antes de poder usarla, por ejemplo debes hacer 
 
 Set Objeto_Miclase = ElModuloDeClase
 
 
 Espero que sea eso
 
 salu2
 
 
 
 
 -----------------------------------
 
 Recursos visual basic, ocx y codigo fuente (http://www.recursosvisualbasic.com.ar/)
- 
				Hola luciano,
 
 Ya probe con lo que me dijiste y no me funciona, te agradeceria si me pudieras enviar un archivo de excel con el codigo para que cuando se cree un libro, el codigo capture el evento y ejecute una tarea cualquiera como sacar un mensage "msgBox("Se ha creado un libro2")",  muchas gracias por tu atencion,
 
 Mi e-mail es dloaiza@isa.com.co
 
 Saludos,
 
 Daniel Loaiza
- 
				hola a todos, ya soluciones mi problema, el error salia porque le faltaba la palabra new en la declaracion del evento:
 
 Modulo de Clase(SAP)
 
 
 Public WithEvents App As Application
 
 Private Sub App_NewWorkbook(ByVal Wb As Workbook)
 MsgBox ("El libro ha sido creado")
 End Sub
 
 Modulo para inicializar:
 
 Dim X As New SAP
 Sub InitializeApp()
 Set X.App = Application
 End Sub
- 
				Eso es a lo que me referia: 
 
 Set Objeto_Miclase = New ElModuloDeClase
 
 ..me falto el New  :D
 
 
 ...saludos
 
 
 
 -----------------------
 
 Recursos visual basic, ocx, código fuente (http://www.recursosvisualbasic.com.ar/)