Manipulation d'un Workbook excel ac plusieurs WorkSheet [Résolu]

yoh_bur 24 Messages postés mercredi 18 mai 2005Date d'inscription 9 février 2007 Dernière intervention - 7 juin 2005 à 14:28 - Dernière réponse : cs_CanisLupus 3758 Messages postés mardi 23 septembre 2003Date d'inscription 13 mars 2006 Dernière intervention
- 8 juin 2005 à 19:24
Bonjour.

J'ai besoin a partir de VB6 d'inscrire des valeurs dans des tableaux sous Excel.
Le faire dans une seule Sheet ne me pose aucun pb, mais voila, je dois le faire ds differentes Sheets en fonction de la valeur d'une variable.

J'utilise une fonction a laquelle je passe une feuille active, elle s'occuppe de l'insertion. Elle est declarée comme suit:

Function insert_tab ( Sheet As Object)
...
End function

Mon pb vient du fait que soit les methodes appliques aux objets Excel ne sont pas reconnu, soit la sheet que je passe en argument de la fonction fait planter.

Merci d'avance pour l'aide.
Afficher la suite 

7 réponses

Meilleure réponse
cs_CanisLupus 3758 Messages postés mardi 23 septembre 2003Date d'inscription 13 mars 2006 Dernière intervention - 7 juin 2005 à 20:07
3
Merci
Salut,

Un exemple que j'ai déjà dû posté :

' dans projet/références......... Microsoft Excel x.x Object Library


Sub essai()
Dim AppExcel As Excel.Application
Dim ClasseurExcel As Excel.Workbook


' Chargement de l'application Excel
Set AppExcel = CreateObject("Excel.Application")

' Ouverture du classeur Excel
Set ClasseurExcel = AppExcel.Workbooks.Open(TonFichierXls)


' appel de ta fonction
insert_tab ClasseurExcel.Sheets(TaFeuille)

' Pour refermer tout proprement
'ClasseurExcel.Save 'pour sauvegarder tes modifs sinon :
'ClasseurExcel.Saved = True ' Pour dire que c'est déjà sauvegardé donc pas de nouvelle sauvegarde
ClasseurExcel.Close

AppExcel.Quit


Set ClasseurExcel = Nothing
Set AppExcel = Nothing


End Sub


Function insert_tab(Feuille As Excel.Worksheet)


With Feuille
.Cells(1, 1) = "toto" ' "toto" dans la cellule A1
.Cells(1, 2) = "truc" ' "truc" dans la cellule B1
End With


...
End Function


@+

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?

Merci cs_CanisLupus 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 95 internautes ce mois-ci

Meilleure réponse
yoh_bur 24 Messages postés mercredi 18 mai 2005Date d'inscription 9 février 2007 Dernière intervention - 8 juin 2005 à 09:36
3
Merci
Merci de ta reponse.

Mais elle me laisse perplexe:
En declarant ma fonction avec un objet du type Excel.WoorkSheet, il me met "Err: Type defini par l'utilisateur non defini"
Pourtant j'ai bien reference Excel 9.0, J'ai mes objets Excel classiques.
Saurais tu egalement me dire pourquoi certaine propriete ou fonctions de ces objets ne semblent pas pris en compte (msg d'erreur propriete non valide, etc...)

Merci yoh_bur 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 95 internautes ce mois-ci

Meilleure réponse
yoh_bur 24 Messages postés mercredi 18 mai 2005Date d'inscription 9 février 2007 Dernière intervention - 8 juin 2005 à 09:49
3
Merci
c juste un pb d'orthographe c insert_tab(sheet as Excel.Worksheet) ac Woorksheet au singulier.
Par contre, j'en reviens a une erreur que je n'arrive pas a comprendre:
sur xlBook.Sheets("toto") il me dit ne pas gerer la propriete ou la methode

Merci yoh_bur 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 95 internautes ce mois-ci

Meilleure réponse
yoh_bur 24 Messages postés mercredi 18 mai 2005Date d'inscription 9 février 2007 Dernière intervention - 8 juin 2005 à 17:19
3
Merci
Alors, ca a presque avancer.

l'appel de l'argument sans paranthese semble accepter et pas celui avec des paranthese.
Mais du coup, il me met type incompatible lorsque j'arrive sur la fct

Sub tab_remplissage()

Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet


Set xlApp = CreateObject("Excel.Application")


Set xlBook = xlApp.Workbooks.Open(App.Path & "\doc\Modele.xls")
Set xlSheet = xlBook.Worksheets(1)


Inscr_Mois (xlBook.Worksheets(1))

End Sub

Public function insert_tab(Sht As Excel.Worksheets)
...
End function

Merci yoh_bur 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 95 internautes ce mois-ci

Meilleure réponse
yoh_bur 24 Messages postés mercredi 18 mai 2005Date d'inscription 9 février 2007 Dernière intervention - 8 juin 2005 à 17:21
3
Merci
En declarant Sht cm Variant, ca passe.
Merci

Merci yoh_bur 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 95 internautes ce mois-ci

yoh_bur 24 Messages postés mercredi 18 mai 2005Date d'inscription 9 février 2007 Dernière intervention - 8 juin 2005 à 13:55
0
Merci
en passant par un indice, ca passe, mais l'appel d'argument ds la fonction n'est pas valide????
cs_CanisLupus 3758 Messages postés mardi 23 septembre 2003Date d'inscription 13 mars 2006 Dernière intervention - 8 juin 2005 à 19:24
0
Merci
Hum variant ....

Au lieu de
Public function insert_tab(Sht As Excel.Worksheets)
...
End function

je coderait

Public function insert_tab(Sht As Excel.Worksheet)
...
End function

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.