Visual Basic - Se daña mi archivo de excel al modificar datos desde VB6

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil
Val: 7
Ha aumentado su posición en 11 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Se daña mi archivo de excel al modificar datos desde VB6

Publicado por Citlali (4 intervenciones) el 12/03/2019 19:25:49
Hola que tal espero puedan ayudarme. Estoy realizando un proyecto en VB6 que consiste en modificar datos de un libro de Excel sin abrir Excel, Este archivo contiene un fomato de Certificado pero siempre que lo imprimen solo cambian 3 aspectos: Remision, N° de pedido y N° de piezas. Esta es la interfaz que creé

https://www.lawebdelprogramador.com/usr/tmp/5c87f869dfb38_th-Captura.PNG

Cuando incio el programa no me marca error, peeerooo cuando voy al documento no puedo acceder a nada por que esta todo totalmente gris, no puedo decir que se elimino pues el documento sigue con el mismo tamaño, al parecer se daño.

ASI ES COMO APARECE

e61ae4c7-2446-4140-a541-acb163d3842e

Alguien puede ayudarme?

Mi codigo es el siguiente

https://www.lawebdelprogramador.com/usr/tmp/5c87f96676781_th-2.PNG

2
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 355
Bronce
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Se daña mi archivo de excel al modificar datos desde VB6

Publicado por Raul (160 intervenciones) el 12/03/2019 19:56:19
Tu libro sigue abierto, por eso es que te lo muestra en gris.

Por lo que he enendido por defecto al abrir el VB 6.0 un archivo excel lo hace con acceso exclusivo no solo recerbando el nombre del archivo sino tambien de ruta.
Tambien la propia conexión se establece por capas o sea que al hacer set libro = nothing solo borrar una capa o sea que todo lo demas sigue activo.

solución

remplaza libro.save y libro.close por

Libro.ActiveWorkbook.Close xlDotSaveChanges, NAMEBOOK

dode namebook es la ruta con el nombre ejem "C:\Files\libro.xls"

de esta forma cierras todas las instancias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 7
Ha aumentado su posición en 11 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Se daña mi archivo de excel al modificar datos desde VB6

Publicado por Citlali (4 intervenciones) el 13/03/2019 04:39:23
Hola Raul muchas gracias por tu ayuda, si cambie el codigo como me dijiste pero me marco error de compilacion "User-defined type not defined" :c
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 7
Ha aumentado su posición en 11 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Se daña mi archivo de excel al modificar datos desde VB6

Publicado por Citlali (4 intervenciones) el 13/03/2019 05:24:39
PErdon Raul cheque y la situacion fue en la referencia, agege la referencia pero aun asi me mando el siguiente error cuando pasa al codigo
error
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de gilman
Val: 594
Bronce
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Se daña mi archivo de excel al modificar datos desde VB6

Publicado por gilman (359 intervenciones) el 13/03/2019 08:59:31
Claro el objeto Workbook no tiene el método ActiveWorkbook, es una propiedad de la clase Excel.Application
Prueba el siguiente código:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private Sub cmdCrearCertificado_Click()
 
    Dim oApp As Excel.Application
    Dim libro As Excel.Workbook
    Dim hoja As Excel.Worksheet
 
    Set oApp = New Excel.Application
    Set libro = oApp.Workbooks.Open("G:\Certificados ConCal BUINMOR\4BPLASTICS.xlsx")
    Set hoja = libro.Worksheets("G. 2 BOCAS 4.6 LTS AMARILLO2")
    'Haces las operaciones con las celdas...
    libro.Save
    libro.Close
    Set libro = Nothing
    oApp.Quit
    Set oApp = Nothing
 
End Sub
Acostumbraros a insertar el código y no imagenes del código, es más facil para quién responde, así como será más facil pará tí copiar el código que he puesto, en vez de reescribirlo, por eso no he puesto las operaciones con las celdas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 7
Ha aumentado su posición en 11 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Se daña mi archivo de excel al modificar datos desde VB6

Publicado por Citlali (4 intervenciones) el 13/03/2019 17:52:56
Muchas Gracias Gilman ya agregue el codigo, de hecho ya no marco ningun error y el archivo se abre, pero no me modifico nada :'c las celdas siguen igual con los mismos valores que tiene. Tal vez anote mal

error
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de gilman
Val: 594
Bronce
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Se daña mi archivo de excel al modificar datos desde VB6

Publicado por gilman (359 intervenciones) el 14/03/2019 08:59:15
No pongas imagenes, pon el código:
Copia y pega el código en la ventana del mensaje, despues seleccionalo y pulsa:

xx
Con eso consigues que la gente pueda copiarlo y pegarlo, y además no pierde la indentación
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar