Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Escribir campos de formulario en hoja de Excel

Estas en el tema de Escribir campos de formulario en hoja de Excel en el foro de Visual Basic clásico en Foros del Web. Tengo un formulario en el que doy de alta proyectos y quiero que, al confirmar el nuevo registro, se me copien dos o tres campos ...
  #1 (permalink)  
Antiguo 19/12/2012, 02:49
 
Fecha de Ingreso: diciembre-2012
Mensajes: 2
Antigüedad: 11 años, 4 meses
Puntos: 0
Escribir campos de formulario en hoja de Excel

Tengo un formulario en el que doy de alta proyectos y quiero que, al confirmar el nuevo registro, se me copien dos o tres campos del formulario en dos celdas de una plantilla de Excel que tengo ya creada de antemano.

Creo que lo tengo a punto, pero si no me falla una cosa es otra y la verdad es que no sé interpretar los mensajes de error que me saltan.

Código:
Private Sub btn_exportar_Click()
    Dim appExcel As Excel.Application
    Dim wkb As Excel.Workbook
    Dim wks As Excel.Worksheet
  
    Dim fichero As String
    
    fichero = Me![ruta_plantilla]
    
    'Abro un libro
    Set wkb = appExcel.Workbooks.Open(fichero) 'Se me queja en esta línea (error 91 en tiempo de ejecución. Variable de objeto o bloque With no establecido)
    
    'Selecciono la hoja
    Set wks = wkb.ActiveSheet("hoja01")
    
    'Asigno campos del formulario a las celdas
    wks.Range("B1").Value = Me![referencia]
    wks.Range("B2").Value = Me![nombre]
¿Por qué me salta el error? Y otra cosa, ¿cuál es la mejor manera de trabajar con Excel desde Visual Basic? Lo digo porque he visto al menos dos formas de abrir libros de Excel y de declarar las variables para ello...

Gracias.
  #2 (permalink)  
Antiguo 19/12/2012, 17:39
 
Fecha de Ingreso: marzo-2012
Ubicación: Mexico
Mensajes: 17
Antigüedad: 12 años, 1 mes
Puntos: 1
Respuesta: Escribir campos de formulario en hoja de Excel

Te manda el mensaje de error porque no has inicializado appExcel

inicializalo asi:

set appExcel = new excel.application

Y despues tu linea para abrir el libro...
  #3 (permalink)  
Antiguo 19/12/2012, 18:15
 
Fecha de Ingreso: diciembre-2012
Mensajes: 2
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Escribir campos de formulario en hoja de Excel

Gracias, al final he conseguido solucionarlo haciéndolo así:

Código:
Dim oExcel As Object
    Dim oBook As Object
    Dim oSheet As Object
    
    fichero = Me![ruta_plantilla]
    
    'Start a new workbook in Excel
    Set oExcel = CreateObject("Excel.Application")
    Set oBook = oExcel.Workbooks.Open(fichero)
    
    
    'Add data to cells of the first worksheet in the new workbook
    Set oSheet = oBook.Worksheets(1)

    oSheet.Range("B1").Value = Me![Cuadro combinado18]
    oSheet.Range("B2").Value = Me![Referencia]
    oExcel.Visible = True
Lo que me lleva de nuevo a la duda que planteé en el primer post. ¿Qué diferencia hay entre crear las instancias de Excel así o como puse en el código del primer post? ¿Cuál es la forma más recomendable? Acabo de probar lo que me has dicho y así también funciona.

Gracias de nuevo.

Etiquetas: basic, campos, excel, formulario, hoja, visual
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 21:27.