Problème de référence d'une feuille Excel dans un formulaire Access.
Bonjour,
Dabord, je tiens à m'excuser si la réponse à ce genre de problème existe (et elle existe forcement), mais je suis très pressé et je n'est pas beaucoup de temps, d'autant plus que je ne suis pas fan du VBA :)
Pour commencer, j'ai une classe Attributes, qui contient un nom, une requête SQL et le résultat de cette requête une fois celle-ci exécutée.
Dans cette classe, j'ai une fonction qui accepte une feuille Excel (via OWC, version 9) et qui écrit le résultat de la requête dans cette feuille :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
Public Sub WriteToSpreadSheet(ByRef obj As OWC.Spreadsheet)
Dim Sheet As OWC.Spreadsheet
Set Sheet = obj.Object
Dim i As Integer
' mResult contient le résultat de la requête
mResult.MoveFirst
While mResult.BOF <> True
For i = 1 To 18 - 1
' Ecriture du résultat de la requête
Next
mResult.MoveNext
Wend
End Sub |
D'un autre côté, j'ai un formulaire qui contient une collection d'objet de type Attributes.
Dans une fonction, je souhaite appeler pour chaque objet de la collection la fonction WriteToSpreadSheet :
Code:
1 2 3 4 5 6 7 8 9 10 11
|
Private Sub CalculateBadPDS()
' Classeur est une variable globale faisant référence à la feuille Excel du formulaire, initilisé dans une autre fonction
For i = 1 To 18
' J'éxécute ma requête
Data(i).Execute
' BUG => j'appelle pour chaque objet le méthode WriteToSpreadSheet en donnant comme argument ma feuille Excel
Data(i).WriteToSpreadSheet (xlDoc.Object)
Next
End Sub |
Lorsque j'éxécute mon code, j'obtiens une erreur ( Erreur n°483 : Méthode ou propriété non gérée par cette objet ).
J'en déduis que le problème viens du fait que j'utilise comme argument la référence d'une feuille Excel, mais je ne vois pas trop où est le problème (dotant plus que, comme dit plus haut, je n'est pas beaucoup d'expérience en VB).
Merci d'avance pour toutes vos réponses.
EDIT : Désolé, j'avais validé par erreur un peu trop tôt (je ne m'habituerai jamais au tabulation sur les forums :) )