Microsoft.Office.Interop.Excel

Signaler
Messages postés
3
Date d'inscription
mercredi 30 janvier 2008
Statut
Membre
Dernière intervention
5 février 2008
-
Messages postés
3
Date d'inscription
mercredi 30 janvier 2008
Statut
Membre
Dernière intervention
5 février 2008
-
Bonjour,

Je debute en VB et jai créé avec l'aide de msdn un petit programme qui permet de rechercher des valeurs dans des cellules Excel.
Il fonctionne sur Excel2003 mais pas avec Excel2000, je pense que c'est parce que j'utilise: "Microsoft.Office.Interop.Excel"  existe t'il un moyen en créant le setup par exemple de rendre compatible a Excel2000?

Merci pour vos réponses

Voici le source au cas où je ne suis pas claire :

Public

Class Form1

Dim appxls
As Microsoft.Office.Interop.Excel.Application

Dim book
As Microsoft.Office.Interop.Excel.Workbook

Dim sheet
As Microsoft.Office.Interop.Excel.Workbook

Dim value, ad
As
String 

Dim rng
As Microsoft.Office.Interop.Excel.Range

Dim rngFound
As Microsoft.Office.Interop.Excel.Range

Dim rngFoundFirst
As Microsoft.Office.Interop.Excel.Range 

Private
Sub Bt_ok_Click(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs) Handles Bt_ok.Clickappxls New Microsoft.Office.Interop.Excel.Applicationappxls.Visible

True

book = appxls.Workbooks.Open(

"c:\fichier.xls")

value = TB_recherche.Text

rngFound = appxls.ActiveWorkbook.Worksheets(

"feuil1").Range(
"A1:C10").Find(value, , _Microsoft.Office.Interop.Excel.XlFindLookIn.xlValues, Microsoft.Office.Interop.Excel.XlLookAt.xlPart, _

Microsoft.Office.Interop.Excel.XlSearchOrder.xlByRows, Microsoft.Office.Interop.Excel.XlSearchDirection.xlNext, _

False)

While
Not rngFound
Is
Nothing

If rngFoundFirst
Is
Nothing
ThenrngFoundFirst = rngFound

ElseIf rngFound.Address = rngFoundFirst.Address
Then

Exit
While

End
If

With rngFound.Font.Color = RGB(255, 0, 0)

.Bold =

True

End
WithrngFound = appxls.ActiveWorkbook.Worksheets(

"feuil1").Range(
"A1:C10").FindNext(rngFound)

End
While

6 réponses

Messages postés
1835
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
9
Salut,

tu peux peut etre essayer de remplacer

appxls=New
Microsoft.Office.Interop.Excel.Application

par:

appxls = CreateObject("Excel.Application")

A+
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
38
Le problème ne vient pas du fait d'utiliser Microsoft.Office.Interop.Excel.

Il vient de la(es) librairie(s) que tu es obligé de référencer dans ton projet pour pouvoir utiliser Excel.

Pour Excel2003 tu doit référencer une ou plusieurs librairies Office en version 11. Pour Excel2000 il te faudrait référencer ces mêmes librairies mais en version 9 (ou 10, je sais plus).

Perso, je rencontre le même problème entre Excel 2003 et 2007 et pour l'instant, je n'ai pas de solution.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
1854
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
26
 Bonsoir à tous,

Bonsoir Casy,
Un RegRead sur la version d'Excel n'est-il pas possible ?

jean-marc
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
38
Je ne sais pas JMO, je n'ai pas encore vraiment eu le temps de me pencher sur la question. Et c'est pas là ou je bosse en ce moment que j'aurais le temps de faire de telles recherches.

Il doit bien y avoir moyen de contourner le problème. Mais du fait que la référence est enregistrée dans l'executable à la compilation, je sais pas comment ça marche.
A moins qu'il soit possible de faire un référencement dynamique.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
3
Date d'inscription
mercredi 30 janvier 2008
Statut
Membre
Dernière intervention
5 février 2008

Bonjour,
Effectivement Casy je voulais parler des librairies Office en version 11 pour Excel2003, alors que Excel2000 c'est librairies Office en version 9.
Pensez-vous que si je référencait les librairies Office en version 9 mon programme macherait avec Excel2000 et supérieur ?
Un Regread c'est pour contrôler la version d'Excel dans la Base de registres ?
Avec ta proposition Bigfish la version d'Excel n'a aucune influence ?

Sinon voici le message d'erreur du setup :"Impossible d'installer l'appli requiert l'assembly microsoft.office.interop.excel version 11.0, qui doit être installée dans le GLOBAL Assembly Cache"

Effectivement il n'est pas dans le repertoire, comment le rajouter sans installer Excel2003 ?
Messages postés
3
Date d'inscription
mercredi 30 janvier 2008
Statut
Membre
Dernière intervention
5 février 2008

Salut

Apparemment on peut choisir l'option  installer les références en même temps que l'installation du programme.
 Maintenant mon programme s'installe mais ne fonctionne pas, de plus je ne vois pas microsoft.office.interop.excel version 11.0 dans mon répertoire "assembly".