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

Messages postés
24
Date d'inscription
mercredi 18 mai 2005
Dernière intervention
9 février 2007
- - Dernière réponse : cs_CanisLupus
Messages postés
3758
Date d'inscription
mardi 23 septembre 2003
Dernière intervention
13 mars 2006
- 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
Messages postés
3758
Date d'inscription
mardi 23 septembre 2003
Dernière intervention
13 mars 2006
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 !?

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Messages postés
24
Date d'inscription
mercredi 18 mai 2005
Dernière intervention
9 février 2007
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...)

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Messages postés
24
Date d'inscription
mercredi 18 mai 2005
Dernière intervention
9 février 2007
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Messages postés
24
Date d'inscription
mercredi 18 mai 2005
Dernière intervention
9 février 2007
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Messages postés
24
Date d'inscription
mercredi 18 mai 2005
Dernière intervention
9 février 2007
3
Merci
En declarant Sht cm Variant, ca passe.
Merci

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Messages postés
24
Date d'inscription
mercredi 18 mai 2005
Dernière intervention
9 février 2007
0
Merci
en passant par un indice, ca passe, mais l'appel d'argument ds la fonction n'est pas valide????
Messages postés
3758
Date d'inscription
mardi 23 septembre 2003
Dernière intervention
13 mars 2006
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.