Programación General > Visual Basic 6.0 e inferiores

 Exportar A Excel

<< < (2/2)

Jeremy:
Hola de nuevo. Sigo teniendo el mismo problema, pero me he dado cuenta que igual no es que el Excel se bloquee después de efectuar la exportación, lo que hace exactamente es que no me muestra la hoja que genera. Os explico: Después de hacer la primera exportación y teniendo mi programa activo, en las siguientes exportaciones lo que me muestra es sólo el Libro de trabajo, pero no la hoja donde me aparecerían todas las celdas con su respectivo contenido. Adjunto una imagen para que podáis ver mejor a qué me refiero.

Gracias por vuestra ayuda.

Jeremy.  :hola:

jegonzalezrubio:
hola yo tube una vez ese mismo problema pero para solucionarle cambie la manera de exportar los datos
aunque yo ahora exporto es un objeto llamado querytable en fin.

de todas manera el objeto range no se donde lo estas definiendo de pronto este objeto todavia esta amarado a excel

de todas maneras si esta interesado en la manera como yo envio los datos pues comunicamelo

Suerto

si me acuerdo te escribo chao

Brroz:
Hola.

DiabloRojo tiene toda la razón, no me fijara en el detalle: cuando quieres llamar al método Quit, la variable objExcel ya no instancia ningún objeto. Si el código no casca es porque tiene un On Error resume next al principio.

Sobre el tema que dice jeremy de que al hacer un 'Quit' le dice si quiere guardar los cambios y tal, la cosa tiene solución fácilmente:


--- Código: Text ---     objWorkbook.SaveCopyAs &#34;NombreDeLibro.Xls&#34;    objWorkbook.Saved = True  
La verdad es que no comprendo muy bien que cuernos te pasa.

Chao.

Atondo:
cierra el libro en el que trabajas..
y la instancia de excel  y despues asignas a nothing las variables utilizadas,......,


--- Código: Text --- objWorkbook.close false 'si on deseas grabar o true si lo deseasobjExcel.quit Set objExcel = NothingSet objWorkbook = Nothing  
Para mayor seguridad utiliza plantillas, por si sale algun error y no se grabe informacion no requerida para la proxima vez que ejecute ese trabajo...

nostromo:
Hola;

Mira, este es un ejemplo de lo que realize, nunca he tenido ningún problema ni siquiera bloqueo del excel.


--- Código: Text --- Private Sub Command1_Click()    Dim xlsApp As Variant    'Dim xlsApp As Excel.Application    'Set xlsApp = Excel.Application    Set xlsApp = CreateObject(&#34;Excel.application&#34;)    With xlsApp 'ApExcel        .Visible = True        .Workbooks.Add        men = &#34;titulo&#34; & vbCrLf & &#34;Estudio de Rendimiento&#34;        .Cells(1, 1) = Text1.Text        .Cells(1, 1).Font.Size = 12        '.Cell(1, 1).Font.FontStyle = &#34;Verdana&#34;        .Cells(1, 1).Font.Bold = True        .Range(&#34;A1&#34;).Select        .Selection.HorizontalAlignment = 3  'Center=3, Left=1 2, Right=4        .Cells(3, 1) = Text2.Text        .Cells(3, 1).Font.Size = 10        .Cells(3, 1).Font.Bold = True        .Range(&#34;A3&#34;).Select        .Selection.HorizontalAlignment = 3        For f = 0 To msflex.Rows - 1            For h = 0 To msflex.Cols - 1                With msflex                    '.Col = h .Row = f                    m = .TextMatrix(f, h)                End With                .Cells(5 + f, 1 + h) = m            Next h            b = &#34;A&#34; & 5 + f            b1 = &#34;D&#34; & 5 + f            .Range(b & &#34;:&#34; & b1).Borders.Color = RGB(0, 0, 0)            .Range(b & &#34;:&#34; & b1).Borders.LineStyle = 1  'Hasta el 12        Next f        'En negrita titulos de las columnas            .Range(A & 5 & &#34;:&#34; & D & 5).Select            .Selection.Font.Bold = True        'Alinear contenido primera tabla        For al1 = 0 To msflex.Rows            b = &#34;A&#34; & 5 + al1            b1 = &#34;D&#34; & 5 + al1            '.Range(b & &#34;:&#34; & b1).Borders.Color = RGB(0, 0, 0)            .Range(b & &#34;:&#34; & b1).Select            .Selection.HorizontalAlignment = 3        Next al1        .Cells(5 + msflex.Rows + 1, 1) = &#34;Continuación Segunda Tabla&#34;        For n = 0 To msflex1.Rows - 1            For m = 0 To msflex1.Cols - 1                With msflex1                    '.Col = m .Row = n                    l = .TextMatrix(n, m)                End With                .Cells(5 + n + msflex.Rows + 3, 1 + m) = l            Next m            b = &#34;A&#34; & 5 + n + msflex.Row + 3 + 1            b1 = &#34;E&#34; & 5 + n + msflex.Row + 3 + 1            .Range(b & &#34;:&#34; & b1).Borders.Color = RGB(0, 0, 0)            .Range(b & &#34;:&#34; & b1).Borders.LineStyle = 1        Next n        'En negrita titulos de ls segunda tabla            .Range(A & 5 + msflex.Row + 4 & &#34;:&#34; & D & 5 + msflex.Row + 4).Select            .Selection.Font.Bold = True        'Alinear toda la segunda tabla        For al = 0 To msflex1.Rows            b = &#34;A&#34; & 5 + al + msflex.Row + 3            b1 = &#34;E&#34; & 5 + al + msflex.Row + 3            .Range(b & &#34;:&#34; & b1).Select            .Selection.HorizontalAlignment = 3        Next al        'Continuación de los textos        .Cells(5 + msflex1.Row + msflex.Row + 6, 1) = &#34;Resto del texto&#34;        b = &#34;A&#34; & 5 + msflex1.Row + msflex.Row + 6        .Range(b).Select        .Selection.Font.Bold = True        'Seleccionar última celda        b = &#34;A&#34; & 5 + msflex1.Row + msflex.Row + 8        .Range(b).Select        .Sheets(&#34;Hoja1&#34;).Name = &#34;Inventario&#34;        'Ver documento antes de imprimir        If optVista.Value = True Then            .Worksheets.PrintPreview        End If        Set ApExcel = Nothing    End WithEnd Sub  

--- Código: Text --- Private Sub Form_Unload(Cancel As Integer)    Set xlsApp = NothingEnd Sub  
Nos vemos.

Navegación

[0] Índice de Mensajes

[*] Página Anterior

Ir a la versión completa