Exception du a excel [Résolu]

Signaler
Messages postés
32
Date d'inscription
jeudi 3 août 2006
Statut
Membre
Dernière intervention
6 septembre 2006
-
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
-
bonjour a tous

j'ai une exception de ce type

An error occurred creating the form. See Exception.InnerException for details.  The error is: Impossible d'effectuer un cast d'un objet COM de type 'System.__ComObject' en type d'interface 'Excel.Worksheets'. Cette opération a échoué, car l'appel QueryInterface sur le composant COM pour l'interface avec l'IID '{000208B1-0000-0000-C000-000000000046}' a échoué en raison de l'erreur suivante : Cette interface n'est pas prise en charge (Exception de HRESULT : 0x80004002 (E_NOINTERFACE)).

due de la declaration de cette ligne
Dim

Feuilles As Excel.Worksheets = CType(Classeur.Worksheets, Excel.Worksheets)merci de votre aide

9 réponses

Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
37
Le problème viens apparement de la déclaration de la variable Feuilles

il faudrait mettre         Dim Feuilles As Excel.Sheets = CType(Classeur.Worksheets, Excel.Sheets)

---- Sevyc64  (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
67
ben.... il doit avoir raison ^^
"due à Excel" je sais pas....
vérifie par exemple que ton Classeur.Worksheets n'est pas null, que c'est bien un Excel.Worksheets...

en passant, tu n'est pas en VB6, contrairement à ce que la section où tu as rangé ton topic indique...
bon, ben, je le déplace.

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Messages postés
32
Date d'inscription
jeudi 3 août 2006
Statut
Membre
Dernière intervention
6 septembre 2006

Re

au debut je bossé que sur une feuille d'excel ca a bien marché. et la quand j'ai mis
Dim

Feuilles As Excel.Worksheets = CType(Classeur.Worksheets, Excel.Worksheets)
il me met une exception

merci
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
37
Juste pour préciser Renfield que Excel ce n'est pas du VB.NET mais du VBA.

Donc la section qui va bien c'est Visual Basic 6/ Langages dérivés/VBA

Et je crois que c'était la section de départ, non? j'ai pau eu le temps de la noter

---- Sevyc64  (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
67
Je sais plus où c'était, exactement, mais c'était pas dans la section VBA...

"que sur une feuille excel".... que fais tu, là :S ?

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
37
Chanel35 donne nous quelques précisions sur ton environnement de développement.

Après quelques essais, la fonction Ctype ne semble exister que sous .net

J'en déduit donc que tu développe en VB.NET 2003 ou 2005, et que tu essaye d'acceder à un fichier excel depuis ton appli.
Tu n'es pas du tout sous Excel comme j'ai cru au départ.
Donc Renfield aurait raison de déplacer ce message, autant pour moi.

---- Sevyc64  (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #
Messages postés
32
Date d'inscription
jeudi 3 août 2006
Statut
Membre
Dernière intervention
6 septembre 2006

je suis sous visual basic 2005 expresse
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
37
Tu as certainement un problème de décalration de ta variable Classeur (elle devrait etre normalement de type Excel.WorkBook). Ou alors elle n'est pas encore initialisée au moment ou tu fait le Dim.

---- Sevyc64  (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #
Messages postés
32
Date d'inscription
jeudi 3 août 2006
Statut
Membre
Dernière intervention
6 septembre 2006

voici les declaration

Dim

Appli
As Excel.Application = _

CType(CreateObject(
"Excel.Application"), Excel.Application)

Dim Classeur
As Excel.Workbook = _

CType(Appli.Workbooks.Add, Excel.Workbook)

Dim Feuilles
As Excel.Worksheets =
CType(Classeur.Worksheets, Excel.Worksheets)