erreur d’exécution 438 :Propriété ou méthode non géré par cet objet. ( Access 2003)

kalel45

XLDnaute Nouveau
Bonjour tous le monde , ou plutôt bonsoir ...

Voilà j'essaie de réalisé une application sur Access permettant de géré la location de box pour des groupe de musique.

J'ai donc utilisé un spreadsheet pour cela.

Le problème est que lorsque j'ouvre mon formumaire ModuleLocationBox_GestionLocation à partir de mon formulaire principale, j'ai cette fameuse erreur d’exécution 438: Propriété ou méthode non géré par cet objet.

Voici le sub qui pose problème:


Private Sub eraseAll()
Dim j As Integer
Dim r1, r2, r3, r4 As Range

Set ancienneSelection = Me.iSpreadShit.Range(Me.iSpreadShit.Cells(1, 1), Me.iSpreadShit.Cells(1, 1))
Set selection = ancienneSelection

Set r1 = Me.iSpreadShit.Range(Me.iSpreadShit.Cells(1, 1), Me.iSpreadShit.Cells(1, 8))
Set r2 = Me.iSpreadShit.Range(Me.iSpreadShit.Cells(1, 1), Me.iSpreadShit.Cells(19, 1))
Set r3 = Me.iSpreadShit.Range(Me.iSpreadShit.Cells(1, 1), Me.iSpreadShit.Cells(19, 8))
Set r4 = Me.iSpreadShit.Range(Me.iSpreadShit.Cells(2, 2), Me.iSpreadShit.Cells(19, 8))

r3.ClearContents

r1.Interior.Color = bleu
r2.Interior.Color = bleu
r4.Interior.Color = blanc

r3.Borders.Weight = owcLineWeightThin
r3.Borders.Color = gris
r3.Font.Color = noir
r4.Font.Size = 5

Me.iSpreadShit.Cells(1, 2).Value = "Lundi"
Me.iSpreadShit.Cells(1, 3).Value = "Mardi"
Me.iSpreadShit.Cells(1, 4).Value = "Mercredi"
Me.iSpreadShit.Cells(1, 5).Value = "Jeudi"
Me.iSpreadShit.Cells(1, 6).Value = "Vendredi"
Me.iSpreadShit.Cells(1, 7).Value = "Samedi"
Me.iSpreadShit.Cells(1, 8).Value = "Dimanche"

For j = 2 To 19
Me.iSpreadShit.Cells(j, 1).Value = displayHour(j + 4) & " - " & displayHour(j + 5)
Next j

End Sub



je pense sans être sur que sa vient de Me.iSpreadShit.Range
ou bien d'un dll manquant. mais j'avoue que je rame depuis quelque jours maintenant.

je viens tous juste de télécharger le dll MSOWC.dll et je l'ai ajouté à mes référence.


Si quelqu'un à une idée , j'avoue que je suis preneur ^^

Merci d'avance,

Bonne soirée; Cordialement
 

Dranreb

XLDnaute Barbatruc
Re : erreur d’exécution 438 :propriété ou méthode non géré par cet objet. ( Access

Bonsoir.
J'ai donc utilisé un spreadsheet pour cela
Il me semble dans ce cas qu'il y aurait de bonnes chance de devoir remplacer "iSpreadShit" par "iSpreadSheet"
Il ne reste plus qu'à espérer qu'alors ce soit bien une propriété de l'objet designé par Me
Cordialement.
 

kalel45

XLDnaute Nouveau
Re : erreur d’exécution 438 :propriété ou méthode non géré par cet objet. ( Access

Bonsoir.
Il me semble dans ce cas qu'il y aurait de bonnes chance de devoir remplacer "iSpreadShit" par "iSpreadSheet"
Il ne reste plus qu'à espérer qu'alors ce soit bien une propriété de l'objet designé par Me
Cordialement.


Malheureusement non , je viens d'essayer de remplacé iSpreadShit par iSpreadSheet mais cela ne fonction toujours pas.
Il y a toujours la même erreur sur cette ligne.

De plus Access ne me propose aucune option lorsque j'écrit iSpreadSheet. ...

Par contre il m'affiche bien des options lorsque j'écrit iSpreadShit. mais il ne m'affiche pas l'option Range....
 

Dranreb

XLDnaute Barbatruc
Re : erreur d’exécution 438 :propriété ou méthode non géré par cet objet. ( Access

Bonsoir.
Quand vous tapez Me. normalement il vous affiche dans une petite liste toutes le propriétés et méthodes disponibles pour le type d'objet auquel le module est attaché. Il ne reste plus qu'à sélectionner le bon. Ça s'étend même aux objets incorporés sauf s'ils le sont dynamiquement par du code. L'objet figure dans la liste en haut à gauche de la fenêtre de code, et dans celle de droite la liste de tous les évènements qu'il peut déclencher. En mode création vous pouvez même double-cliquer sur l'objet pour y faire venir un modèle de la principale procédure évènement.

P.S. Ah... je commence à mieux comprendre: "iSpreadShit" c'est le nom (avek ceyte fôte juste) d'un objet que vous avez implanté dans l'objet désigné par Me. Dans ce cas n'essayez pas de spécifier des propriétés de cet objet qui n'existent pas: ça ne marchera jamais.

P.S.2 Spreadsheet... Spreadsheet... Le nom me disait quelque chose. Ah oui je l'ai trouvé dans les contrôles "exotiques" qu'on peut mettre dans un userform. Tien, ça ressemble à une feuille Excel. Mais... la méthode Range m'est bien proposée quand je tape son nom suivi d'un point. Il y a un autre problème alors. Il ne peut peut être pas être encapsulé complètement dans l'objet où vous voulez le mettre.
Certaines choses peuvent être mise dans un userform mais pas dans une feuille de calcul Excel ou un graphique par exemple. Ou alors ce n'en est qu'une version dégradée n'ayant pas du tout les mêmes propriétés que dans son terrain de prédilection, presque plus qu'une simple image...

P.S.3 Si "iSpreadShit" vous est proposé quand vous tapez "Me." essayez:
VB:
MsgBox TypeName(Me.iSpreadShit)
pour vérifier si c'est bien un Spreadsheet

P.S.4 Sinon regardez aussi dans la petite liste qui surmonte la fenêtre de propriété si vous n'auriez pas dans votre ...quoi déjà, Me, une forme ? ... si vous n'auriez pas dans votre forme effectivement un objet Spreedsheet mais portant un autre nom.

Bon je m'arrête là dans mes P.S. en attendant le résultat de vos investigations.
Cordialement
 
Dernière édition:

kalel45

XLDnaute Nouveau
Re : erreur d’exécution 438 :propriété ou méthode non géré par cet objet. ( Access

Bonsoir,

Effectivement , iSpreadShit est le nom d'une feuille excel de mon formulaire.
Je mon sert dans le but de généré un emploie du temps dans mon application.

En effet , Lorsque je tape Me. iSpreadShit est bien proposé .

lorsque je met
Code:
MsgBox TypeName(Me.iSpreadShit)

cela met en sortie : CustomControl


Par contre je n'ais pas compris votre PS4 ;)
 

Dranreb

XLDnaute Barbatruc
Re : erreur d’exécution 438 :propriété ou méthode non géré par cet objet. ( Access

On est en train de cerner le problème là.
Dans l'userform bidon ou j'ai mis un Spreadsheet (il s'appelle Spreadsheet1, je ne l'ai pas renommé) j'ai mis:
VB:
Private Sub UserForm_Click()
MsgBox TypeName(Me.Spreadsheet1)
End Sub
J'ai fait un essai d'affichage de l'userform, cliqué dessus, il m'affiche en sortie : Spreadsheet
Pour une raison que je ne saurais expliquer, ni à vous ni à moi même, il n'est pas précisément implanté dans votre forme en tant que Spreadsheet. Supprimez le et remettez en un en essayant de nuancer votre façon de l'incorporer...
Si ça ne va pas, essayez de vérifier si votre objet de type CustomControl ne serait pas muni d'une propriété qui, elle, représenterait un vrai Spreadsheet
À +
 

kalel45

XLDnaute Nouveau
Re : erreur d’exécution 438 :propriété ou méthode non géré par cet objet. ( Access

Bonjour , désolé pour l'attente...

Effectivement vous avez vu juste , bizarrement le SpreadSheet que j'avais créé n'existé pas....

J'en est créé un nouveau et il semble qu'il y est beaucoup moins d'erreur .

Aujourd'hui je cherche désespérément a utilisé le contrôle Active X Microsoft office SpreadSheet 9.0

Mais je ne l'est pas dans mon logiciel Access.

Je dispose seulement de microsoft office SpreadSheet 10.0

et microsoft office SpreadSheet 11.0


Je sais que pour utilisé microsoft office SpreadSheet 9.0

il faut inséré une référence sans doute OWC9 , mais j'ai beau fouillé le Web , je ne le trouve pas...
 

Dranreb

XLDnaute Barbatruc
Re : erreur d’exécution 438 :propriété ou méthode non géré par cet objet. ( Access

Bonjour.
Non, chez moi le 9 c'est C:\Program Files\Microsoft Office\Office10\MSOWC.DLL
j'ai aussi le 10 qui est en effet OWC10.DLL mais pas le 11 (qui est sans doute OWC11.DLL chez vous ?). Mais pourquoi ce dernier, qui est sans doute le plus récent, ne vous convient-il pas ? Quels sont les différences entre toutes ces versions ?
Cordialement.
 

kalel45

XLDnaute Nouveau
Re : erreur d’exécution 438 :propriété ou méthode non géré par cet objet. ( Access

Et bien la façon d'utilisé Un SpreadSheet 9.0 est différent des autres versions en Terme de code Vb .

Comment ce fait il que lorsque j'ouvre mon explorateur d'objet sous access je retrouve bien le SpreadSheet 9.0

mais que lorsque j'essaye d’inséré un contrôle Active X dans mon formulaire je ne trouve que les SpreadSheet 10.0 et 11.0 ???
 

Dranreb

XLDnaute Barbatruc
Re : erreur d’exécution 438 :propriété ou méthode non géré par cet objet. ( Access

J'avoue ignorer ce qui fait qu'une DLL est proposée ou non dans la liste suite à un clic droit sur la boîte à outils, puis Contrôle supplémentaires. Une histoire de registre ?...
Cordialement.
 

tototiti2008

XLDnaute Barbatruc
Re : erreur d’exécution 438 :propriété ou méthode non géré par cet objet. ( Access

Bonjour kalel, Bonjour Dranreb :),

Je ne sais pas non plus comment les versions des spreadsheet sont gérées dans les contrôles supplémentaires, cependant, sur une spreadsheet 10.0 dans un formulaire Access, j'ai réussi à écrire dedans comme ça :

Code:
Me.Spreadsheet0.Object.Range("A1").Value = "toto"

Donc ajouter Object entre l'Objet Spreadsheet et l'objet Range ou Cells voulu devrait fonctionner
 

Dranreb

XLDnaute Barbatruc
Re : erreur d’exécution 438 :propriété ou méthode non géré par cet objet. ( Access

Bonjour Tototiti2008
Ahah ! cela confirmerait-il ce que je pressentais au #7 ?
Si le type Spreadsheet est malgré tout connu dans l'environnement, on devrait pouvoir bénéficier de liaisons précoces et d'assistance à la programmation en faisant une bonne fois pour toutes au début:
VB:
Dim SSh as Spreadsheet
Set SSh = Me.Spreadsheet0.Object
Et en travaillant naturellement avec SSh partout ensuite.
Cordialement.
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 230
Messages
2 086 427
Membres
103 207
dernier inscrit
Michel67