Referencia de Excel - Urgente

15/12/2004 - 20:59 por Juan | Informe spam
Buenas a tod@s

Mi pregunta es la siguiente, tengo una aplicación en VB.Net que tiene una
referencia a Excel 2003. Cuando hago la instalación en un equipo de trabajo
que tiene la misma versión de office no hay problema, pero cuando lo instalo
sobre una versión anterior me envía un mensaje de error que dice que "la
versión es antigua. Interop.Excel".

Mi pregunta es como puedo solucionar esto de tal manera el sistema pueda
manejar varias versiones del office.

Gracias

Preguntas similare

Leer las respuestas

#1 Carlos Durán Urenda
16/12/2004 - 16:28 | Informe spam
Hola Juan

Yo me enfrenté con el mismo problema y al parecer no tiene solucion, algunas
de las soluciones que he visto son las siguientes

1) Referenciar a la libreria de objetos en excel, esto es en el diseño,
lamentablemete depende de la version que tienes instalada en tu equipo, lo
unico bueno es que dispones del intelicense al escribir codigo para objetos
de excel

2) Crear la referencia dinamicamente en tiempo de ejecucion la referencia,
mediante el comando CreateObject, la instriccion seria de la siguiente
manera

Dim XLS as Object = CreateObject("Excel.Application")

y todas tus variables de tipo Libro, hoja de trabajo tambien tendrian que
ser creadas de tipo Object, lo malo es que pierdes el intelicense, y todas
las constantes definidas en excel tendiras que cambiarlas por su valor
numerico.

Supuestamente de esta manera obtienes cierta independencia de la version de
excel, pero acarrea otros problemas, como el hecho que al crearse
dinamicamente la referencia, la compilacion se realiza en tiempo de
ejecucion, lo que relentiza tu codigo, ademas de la perdida del intelicense,
en mi experiencia es FALSO que proporcione alguna independencia del codigo.

3) Por ultimo, podrias utilizar el comando Shell para abrir un libro y dejar
que Windows sea el encargado de llamar a Excel, de forma que no tendrias
ningún problema con la version, sin embargo tampoco tendirias control alguno
sobre el libro, lo que podrias hacer en este caso es utilizar el libro de
excel como si se tratase de una base de datos, introducir datos en el
mediante ADO.Net, y el resto programarlo en macros dentro del mismo libro,
de forma que puedas darle la presentacion necesarial al momento de abrirlo,
claro, con el molesto mensaje de que si deseas habilitar las macros.


Espero te sea de utilidad, si tienes alguna mejor idea te agradeceria me la
compartas


Carlos Durán Urenda







"Juan" escribió en el mensaje
news:
Buenas a

Mi pregunta es la siguiente, tengo una aplicación en VB.Net que tiene una
referencia a Excel 2003. Cuando hago la instalación en un equipo de
trabajo
que tiene la misma versión de office no hay problema, pero cuando lo
instalo
sobre una versión anterior me envía un mensaje de error que dice que "la
versión es antigua. Interop.Excel".

Mi pregunta es como puedo solucionar esto de tal manera el sistema pueda
manejar varias versiones del office.

Gracias
Respuesta Responder a este mensaje
#2 Juan
16/12/2004 - 23:21 | Informe spam
Hola Carlos,
Primero que todo muchísimas gracias por tu respuesta.

Después de investigar un buen rato, me di cuenta que el error no es en las
versiones del office sino que la soluciuón se encuentra en los regional
settings. Creo que no soy la mejor persona que te puede dar el porque de las
cosas , pero aqui te mando un link para q

"Carlos Durán Urenda" wrote:

Hola Juan

Yo me enfrenté con el mismo problema y al parecer no tiene solucion, algunas
de las soluciones que he visto son las siguientes

1) Referenciar a la libreria de objetos en excel, esto es en el diseño,
lamentablemete depende de la version que tienes instalada en tu equipo, lo
unico bueno es que dispones del intelicense al escribir codigo para objetos
de excel

2) Crear la referencia dinamicamente en tiempo de ejecucion la referencia,
mediante el comando CreateObject, la instriccion seria de la siguiente
manera

Dim XLS as Object = CreateObject("Excel.Application")

y todas tus variables de tipo Libro, hoja de trabajo tambien tendrian que
ser creadas de tipo Object, lo malo es que pierdes el intelicense, y todas
las constantes definidas en excel tendiras que cambiarlas por su valor
numerico.

Supuestamente de esta manera obtienes cierta independencia de la version de
excel, pero acarrea otros problemas, como el hecho que al crearse
dinamicamente la referencia, la compilacion se realiza en tiempo de
ejecucion, lo que relentiza tu codigo, ademas de la perdida del intelicense,
en mi experiencia es FALSO que proporcione alguna independencia del codigo.

3) Por ultimo, podrias utilizar el comando Shell para abrir un libro y dejar
que Windows sea el encargado de llamar a Excel, de forma que no tendrias
ningún problema con la version, sin embargo tampoco tendirias control alguno
sobre el libro, lo que podrias hacer en este caso es utilizar el libro de
excel como si se tratase de una base de datos, introducir datos en el
mediante ADO.Net, y el resto programarlo en macros dentro del mismo libro,
de forma que puedas darle la presentacion necesarial al momento de abrirlo,
claro, con el molesto mensaje de que si deseas habilitar las macros.


Espero te sea de utilidad, si tienes alguna mejor idea te agradeceria me la
compartas


Carlos Durán Urenda







"Juan" escribió en el mensaje
news:
> Buenas a
>
> Mi pregunta es la siguiente, tengo una aplicación en VB.Net que tiene una
> referencia a Excel 2003. Cuando hago la instalación en un equipo de
> trabajo
> que tiene la misma versión de office no hay problema, pero cuando lo
> instalo
> sobre una versión anterior me envía un mensaje de error que dice que "la
> versión es antigua. Interop.Excel".
>
> Mi pregunta es como puedo solucionar esto de tal manera el sistema pueda
> manejar varias versiones del office.
>
> Gracias



Respuesta Responder a este mensaje
#3 Juan
16/12/2004 - 23:23 | Informe spam
Muchas gracias Carlos por tu respuesta,

Después de sacar un rato para investigar llegue a un articulo del soporte de
microsoft que me dio la solucion sin tener que hacer un latebinding con el
createobject, además porque a mi no me resultaba.

Aquí te doy la dirección electrónica de la página para que le heches un
vistazo...

http://support.microsoft.com/defaul...-US;320369

Espero que te ayude... Muchas gracias...

"Carlos Durán Urenda" wrote:

Hola Juan

Yo me enfrenté con el mismo problema y al parecer no tiene solucion, algunas
de las soluciones que he visto son las siguientes

1) Referenciar a la libreria de objetos en excel, esto es en el diseño,
lamentablemete depende de la version que tienes instalada en tu equipo, lo
unico bueno es que dispones del intelicense al escribir codigo para objetos
de excel

2) Crear la referencia dinamicamente en tiempo de ejecucion la referencia,
mediante el comando CreateObject, la instriccion seria de la siguiente
manera

Dim XLS as Object = CreateObject("Excel.Application")

y todas tus variables de tipo Libro, hoja de trabajo tambien tendrian que
ser creadas de tipo Object, lo malo es que pierdes el intelicense, y todas
las constantes definidas en excel tendiras que cambiarlas por su valor
numerico.

Supuestamente de esta manera obtienes cierta independencia de la version de
excel, pero acarrea otros problemas, como el hecho que al crearse
dinamicamente la referencia, la compilacion se realiza en tiempo de
ejecucion, lo que relentiza tu codigo, ademas de la perdida del intelicense,
en mi experiencia es FALSO que proporcione alguna independencia del codigo.

3) Por ultimo, podrias utilizar el comando Shell para abrir un libro y dejar
que Windows sea el encargado de llamar a Excel, de forma que no tendrias
ningún problema con la version, sin embargo tampoco tendirias control alguno
sobre el libro, lo que podrias hacer en este caso es utilizar el libro de
excel como si se tratase de una base de datos, introducir datos en el
mediante ADO.Net, y el resto programarlo en macros dentro del mismo libro,
de forma que puedas darle la presentacion necesarial al momento de abrirlo,
claro, con el molesto mensaje de que si deseas habilitar las macros.


Espero te sea de utilidad, si tienes alguna mejor idea te agradeceria me la
compartas


Carlos Durán Urenda







"Juan" escribió en el mensaje
news:
> Buenas a
>
> Mi pregunta es la siguiente, tengo una aplicación en VB.Net que tiene una
> referencia a Excel 2003. Cuando hago la instalación en un equipo de
> trabajo
> que tiene la misma versión de office no hay problema, pero cuando lo
> instalo
> sobre una versión anterior me envía un mensaje de error que dice que "la
> versión es antigua. Interop.Excel".
>
> Mi pregunta es como puedo solucionar esto de tal manera el sistema pueda
> manejar varias versiones del office.
>
> Gracias



Respuesta Responder a este mensaje
#4 Carlos Durán Urenda
17/12/2004 - 15:56 | Informe spam
Muchas gracias

lo voy a probar, ya que yo estoy desarrollando en una maquina con office
2002 en español y las pruebas las he hecho en un cliente con Office 2003 en
Ingles, creo que no podria haber una situacion mas adecuada para lo que
describe el articulo ;-)

Recibe un Saludo


Carlos Durán



"Juan" escribió en el mensaje
news:
Muchas gracias Carlos por tu respuesta,

Después de sacar un rato para investigar llegue a un articulo del soporte
de
microsoft que me dio la solucion sin tener que hacer un latebinding con el
createobject, además porque a mi no me resultaba.

Aquí te doy la dirección electrónica de la página para que le heches un
vistazo...

http://support.microsoft.com/defaul...-US;320369

Espero que te ayude... Muchas gracias...

"Carlos Durán Urenda" wrote:

Hola Juan

Yo me enfrenté con el mismo problema y al parecer no tiene solucion,
algunas
de las soluciones que he visto son las siguientes

1) Referenciar a la libreria de objetos en excel, esto es en el diseño,
lamentablemete depende de la version que tienes instalada en tu equipo,
lo
unico bueno es que dispones del intelicense al escribir codigo para
objetos
de excel

2) Crear la referencia dinamicamente en tiempo de ejecucion la
referencia,
mediante el comando CreateObject, la instriccion seria de la siguiente
manera

Dim XLS as Object = CreateObject("Excel.Application")

y todas tus variables de tipo Libro, hoja de trabajo tambien tendrian que
ser creadas de tipo Object, lo malo es que pierdes el intelicense, y
todas
las constantes definidas en excel tendiras que cambiarlas por su valor
numerico.

Supuestamente de esta manera obtienes cierta independencia de la version
de
excel, pero acarrea otros problemas, como el hecho que al crearse
dinamicamente la referencia, la compilacion se realiza en tiempo de
ejecucion, lo que relentiza tu codigo, ademas de la perdida del
intelicense,
en mi experiencia es FALSO que proporcione alguna independencia del
codigo.

3) Por ultimo, podrias utilizar el comando Shell para abrir un libro y
dejar
que Windows sea el encargado de llamar a Excel, de forma que no tendrias
ningún problema con la version, sin embargo tampoco tendirias control
alguno
sobre el libro, lo que podrias hacer en este caso es utilizar el libro
de
excel como si se tratase de una base de datos, introducir datos en el
mediante ADO.Net, y el resto programarlo en macros dentro del mismo
libro,
de forma que puedas darle la presentacion necesarial al momento de
abrirlo,
claro, con el molesto mensaje de que si deseas habilitar las macros.


Espero te sea de utilidad, si tienes alguna mejor idea te agradeceria me
la
compartas


Carlos Durán Urenda







"Juan" escribió en el mensaje
news:
> Buenas a
>
> Mi pregunta es la siguiente, tengo una aplicación en VB.Net que tiene
> una
> referencia a Excel 2003. Cuando hago la instalación en un equipo de
> trabajo
> que tiene la misma versión de office no hay problema, pero cuando lo
> instalo
> sobre una versión anterior me envía un mensaje de error que dice que
> "la
> versión es antigua. Interop.Excel".
>
> Mi pregunta es como puedo solucionar esto de tal manera el sistema
> pueda
> manejar varias versiones del office.
>
> Gracias



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida