PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Objet Automation dynamique et Excel
Objet Automation dynamique et Excel
Débuté par sylvie.sofedis, 30 nov. 2005 17:04 - 5 réponses
Posté le 30 novembre 2005 - 17:04
Bonjour,

Je voudrais manipuler les fichiers Excels à partir de mon application Windev.

J'aimerais à partir de windev imprimer les feuilles d'excel de chaque onglet.

Pour l'instant, je sais manipuler les onglets, récupérer les valeurs mais je ne vois pas quand je pourrais imprimer les feuilles.

Voic mon code :
MaFeuilleXLS est un objet Automation dynamique
NomFichier est une chaîne ="C:\toto.xls"
Mois est une chaine

//Instance de Excel existante ?
SI ObjetActif("Excel.Application") <> Null ALORS
MaFeuilleXLS = ObjetActif("Excel.Application")
SINON
MaFeuilleXLS = allouer un objet Automation "Excel.Application"
FIN
// Excel devient visible
MaFeuilleXLS>>Visible = Vrai

//Ouverture du Fichier XLS
MaFeuilleXLS>>Workbooks>>Open(NomFichier)

//Sélection d'un onglet
MaFeuilleXLS>>Sheets("NomOnglet")>>Select

//Récupérer des valeurs
Mois=MaFeuilleXLS>>Range("B18")>>Value

// Impression de la feuille
MaFeuilleXLS>>Sheets("Feuil1")>>Select
MaFeuilleXLS>>Sheets("Feuil1")>>iimprime

//Fermer EXCEL
MaFeuilleXLS>>QUIT().

Pour l'impression, ca bloque

Je ne sais pas quel code mettre.

Merci d'avance,

Sylvie
Posté le 30 novembre 2005 - 17:57
"iimprime" est une instruction Windev. Cela ne peut donc fonctionner vers Excel.
"PrintForm" est une méthode du Visual Basic qui pourrait peut-être fonctionner.
Si ce n'est pas le cas, il faut regarder dans l'aide du Microsoft Visual Editor (Etant dans Excel: Outils > Macro > Visual Basic Editor et ensuite consulter l'aide)
Toutes les méthodes et propriétés y sont décrites...
Bon chance!
Posté le 30 novembre 2005 - 18:37
"syl" <sylvie.sofedis@sofedis.fr> a écrit dans le message de news:
438dc71c$1@news.pcsoft.fr...


Bonjour,

Je voudrais manipuler les fichiers Excels à partir de mon application
Windev.

J'aimerais à partir de windev imprimer les feuilles d'excel de chaque
onglet.

Pour l'instant, je sais manipuler les onglets, récupérer les valeurs mais
je ne vois pas quand je pourrais imprimer les feuilles.

Voic mon code :
MaFeuilleXLS est un objet Automation dynamique
NomFichier est une chaîne ="C:\toto.xls"
Mois est une chaine

//Instance de Excel existante ?
SI ObjetActif("Excel.Application") <> Null ALORS
MaFeuilleXLS = ObjetActif("Excel.Application")
SINON
MaFeuilleXLS = allouer un objet Automation "Excel.Application"
FIN
// Excel devient visible
MaFeuilleXLS>>Visible = Vrai

//Ouverture du Fichier XLS
MaFeuilleXLS>>Workbooks>>Open(NomFichier)

//Sélection d'un onglet
MaFeuilleXLS>>Sheets("NomOnglet")>>Select

//Récupérer des valeurs
Mois=MaFeuilleXLS>>Range("B18")>>Value

// Impression de la feuille
MaFeuilleXLS>>Sheets("Feuil1")>>Select
MaFeuilleXLS>>Sheets("Feuil1")>>iimprime

//Fermer EXCEL
MaFeuilleXLS>>QUIT().

Pour l'impression, ca bloque

Je ne sais pas quel code mettre.

Merci d'avance,

Sylvie



Je ne sais pas si cela fonctionne mais moi à la place de
MaFeuilleXLS>>Sheets("Feuil1")>>iimprime
je mettrais plutot
MaFeuilleXLS>>Sheets("Feuil1")>>PrintOut
Posté le 30 novembre 2005 - 19:06
Un petit truc que j'utilise quand je veux gérer Excel dans des applications Windev, je crée des macro Excel faisant ce que je veux qu'il fasse, Puis après je récupère le code VBA de la macro.

Je copie le code VBA dans mon code Windev et je le modifie pour mettre les ">>",....necessaire dans le code Windev pour faire du OLE Automation.

Cela me permet d'avoir les bonnes instructions
Pour l'impression, cela à l'air d'être le code PrintOut comme le dit une de tes réponses.

Dans Excel :
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True


Corinne BONHOMME
CANADA
Posté le 01 décembre 2005 - 08:59
Bonjour à tous,

Merci à tous.

Je vais essayer vos propositions.

Bonne journée, et encore merci.

Sylvie.
Posté le 01 décembre 2005 - 14:45
Bonjour,

C'est bon, j'arrive à faire certaines choses intéressantes.

Merci beaucoup,

Sylvie