Visual Basic para Aplicaciones - Excel y VBA - Datos distintos si se cambia de PC

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

Excel y VBA - Datos distintos si se cambia de PC

Publicado por andres (4 intervenciones) el 23/11/2017 18:23:27
Cordial saludo

No soy un programador avanzado, es más, no me dedico al área de programación, pero desarrollo una aplicación.
En general, estoy conectando VBA y Excel a tráves de la herramienta de interoperablidad; envio datos a una hoja de excel guardada y los llamo desde alli para mostrarlos en un textbox.

Hasta ahí todo bien.

Cuando ejecuto el programa en el PC 1 los datos son correctos; cuando ejecuto en el PC 2 (el mismo ejercicio) se muestran datos diferentes.

Esto ya esta fuera de mi alcance; probé a guardar la hoja como 2003-2007, como macro etc y nada. Para mi que es problema directo de excel.

Sumado a ello, imprimo alguna información y queda abierto el excel pese a que uso:

Libro.Saved = True
Libro.Close()
app.Quit()

Agradezco sus comentarios frente a esa situación
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: 7
Ha disminuido su posición en 6 puestos en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Excel y VBA - Datos distintos si se cambia de PC

Publicado por andres (4 intervenciones) el 26/11/2017 03:01:56
Como están?

Por si a alguien le sirve, el problema tenia que ver con el separador de miles (punto y coma) y la configuración regional de las computadoras.

Lo he resuelto (?) introduciendo la siguiente cadena en el load del primer formulario de mi proyecto.

System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US")

La única consecuencia de esto es que la orden DateTime.Now.ToShortDateString() para cargar la hora del sistema ya no funciona.

El problema de no poder cerrar excel del todo persiste y continua apareciendo en el administrador de tareas.

Continuare informando para alguien a quien le pueda servir esto
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 Antoni Masana
Val: 1.101
Oro
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Excel y VBA - Datos distintos si se cambia de PC

Publicado por Antoni Masana (374 intervenciones) el 26/11/2017 10:18:50
Buenos días Andres,

A tu primer problema: cambia mejor la configuración del separador y no toda la configuración regional.
En esta página tienes un ejemplo

http://www.programarexcel.com/2017/09/como-cambiar-separador-miles-en-excel.html

A tu Segundo problema: no cierra el Excel

1
2
3
Libro.Saved = True
Libro.Close()
app.Quit()

Este código tiene tiene un pequeño problema: Te lo voy a explicar con un pequeño ejemplo, estas leyendo un libero, llegas a la penúltima línea del libro y pone "Cerrar el libro" y como eres muy obediente lo cierras, ahora que lo has cerrado NO sabes que en la siguiente línea ponía "Guardar el libro en su sitió". Pues eso es lo que le pasa al EXCEL, cierra el libro, finaliza las macro y no cierra el programa.

Deberia ser así:

1
2
Libro.Saved = True
app.Quit()

Saludos.
\\//_
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 disminuido su posición en 6 puestos en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Excel y VBA - Datos distintos si se cambia de PC

Publicado por andres (4 intervenciones) el 28/11/2017 19:57:06
Antoni, gracias por el interés en mi caso.

Sobre tus comentarios al respecto del proceso EXCEL.EXE en segundo plano, comentar que aún implementando la linea arriba sugerida, persiste esa actividad en el administrador de tareas. He leido algo acerca de "liberar" los objetos "COM" o similar, pero no tengo mayor experiencia en eso dado mi nivel "amateur" como programador.

De nuevo gracias
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 Antoni Masana
Val: 1.101
Oro
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Excel y VBA - Datos distintos si se cambia de PC

Publicado por Antoni Masana (374 intervenciones) el 29/11/2017 07:48:18
Yo tengo en el formulario esta funcion

1
2
3
4
Private Sub UserForm_Terminate()
    Application.DisplayAlerts = False
    Application.Quit
End Sub

Es del sistema y se llama solita cuando se cierra el formulario y tengo esta otra en el botón de salir

1
2
3
4
Private Sub Boton_Salir_Click()
    Application.DisplayAlerts = False
    Application.Quit
End Sub

Y funciona perfectamente.

Saludos.
\\//_
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 disminuido su posición en 6 puestos en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Excel y VBA - Datos distintos si se cambia de PC

Publicado por andres (4 intervenciones) el 06/12/2017 21:56:22
Antoni, cordial saludo.

Las lineas funcionaron correctamente. No se muestra excel en segundo plano.

De otra parte comentar que he tenido un problema con la compilación de mi programa; aparece la típica ventana de "errores de compilación" pero en la "lista de errores" no aparece ninguno, solo "advertencias".

Como lo veo, debo copiar mis códigos y mis diseños sobre un archivo nuevo y esperar que no se trate de algo peor.

Gracias de nuevo

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