Gestion fichier excel poussé...

Forum destiné aux questions sur le développement : Formules, LotusScript, Java ...

Gestion fichier excel poussé...

Messagepar Gillou13 » 24 Fév 2009 à 17:00

Bonjour,

Est-il possible de créé un tableau croisé dynamique dans excel via du LS.

Pour explication :
J'ai un scripte qui créer un doc excel avec des infos exportées de lotus.
l'étape suivant c'est de créé un tableau croisé dynamique avec ces données.

Merci d'avance
Dernière édition par Gillou13 le 08 Juil 2010 à 10:12, édité 1 fois.
Gillou13
Posteur expérimenté
Posteur expérimenté
 
Message(s) : 368
Inscrit(e) le : 15 Avr 2005 à 09:49
Localisation : lyon

Messagepar Michael DELIQUE » 24 Fév 2009 à 17:10

salut

si c'est faisable en VBA sous excel c'est faisable en LS
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar mike76 » 24 Fév 2009 à 17:11

Salut,

Est-ce que tu peux créer ton tableau croisé dynamique en macro VBA dans Excel ??
si oui il te suffit de récupérer le code et de le mettre dans ton code ls (bien sûr en l'adaptant en peu le principe est là)
Dernière édition par mike76 le 24 Fév 2009 à 17:13, édité 1 fois.
mike76
V.I.P.
V.I.P.
 
Message(s) : 2122
Inscrit(e) le : 12 Oct 2006 à 13:14
Localisation : ROUEN

Messagepar mike76 » 24 Fév 2009 à 17:12

t'as été plus rapide que moi Michael
mike76
V.I.P.
V.I.P.
 
Message(s) : 2122
Inscrit(e) le : 12 Oct 2006 à 13:14
Localisation : ROUEN

Messagepar gouff » 24 Fév 2009 à 17:20

Regardes la méthode vba "CreatePivotTable"
Avatar de l’utilisateur
gouff
Posteur habitué
Posteur habitué
 
Message(s) : 277
Inscrit(e) le : 11 Fév 2008 à 16:33
Localisation : Grenoble

Messagepar mike76 » 24 Fév 2009 à 17:32

Si tu connais un peu les macros Excel.
Tu enregistres une macro et tu crées ton tableau croisé dynamique.
Ensuite tu arrêtes l'enregistrement de la macro et tu récupères le code VBA généré.
mike76
V.I.P.
V.I.P.
 
Message(s) : 2122
Inscrit(e) le : 12 Oct 2006 à 13:14
Localisation : ROUEN

Messagepar Gillou13 » 24 Fév 2009 à 17:37

j'ai du faire une erreur dans mon "copier coller" de VBA alors.

voici mon code LS:
Je n'ai déclaré que docexcel :

[syntax="LotusScript"]docexcel.WorkSheets("Lotus").Columns("A:C").Select
docexcel.ActiveWorkBook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:="Lotus!C1:C3").CreatePivotTable TableDestination:="", TableName:="Tableau croisé dynamique1", DefaultVersion:=xlPivotTableVersion10
docexcel.ActiveWorkBook.ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
docexcel.ActiveWorkBook.ActiveSheet.Cells(3, 1).Select
docexcel.ActiveWorkBook.ActiveSheet.PivotTables("Tableau croisé dynamique1").AddFields RowFields:="Action", ColumnFields:="Animateur"'
With docexcel.ActiveWorkBook.ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Nom apporteur")
.Orientation = xlDataField
.NumberFormat = "0"
End With[/syntax]

les ligne 2 3 et 5ème ligne sont en rouge dans mon designer...
Gillou13
Posteur expérimenté
Posteur expérimenté
 
Message(s) : 368
Inscrit(e) le : 15 Avr 2005 à 09:49
Localisation : lyon

Messagepar gouff » 24 Fév 2009 à 17:55

je crois que l'affectation ":=" c'est de la formule....
Avatar de l’utilisateur
gouff
Posteur habitué
Posteur habitué
 
Message(s) : 277
Inscrit(e) le : 11 Fév 2008 à 16:33
Localisation : Grenoble

Messagepar mike76 » 24 Fév 2009 à 17:58

Oui c'est le passage de tes paramètres qui posent problème.
Regarde ce tip que Stéphane a écrit

http://forum.dominoarea.org/la-gestion-des-fichiers-excel-en-lotusscript-t13000.html#55218
mike76
V.I.P.
V.I.P.
 
Message(s) : 2122
Inscrit(e) le : 12 Oct 2006 à 13:14
Localisation : ROUEN

Messagepar Michael DELIQUE » 25 Fév 2009 à 09:13

vu que l'astuce de l'enregistrement de la macro est récurrent, j'en ai fait un tip => http://forum.dominoarea.org/viewtopic,p ... tml#112663
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar mike76 » 25 Fév 2009 à 09:15

bonne idée Michaël car des personnes ne connaissent pas cette option d'Excel et c'est vraiment très pratique
mike76
V.I.P.
V.I.P.
 
Message(s) : 2122
Inscrit(e) le : 12 Oct 2006 à 13:14
Localisation : ROUEN

Messagepar Michael DELIQUE » 25 Fév 2009 à 09:19

Moi ça m'a plus d'une fois permis de me sortir d'affaire sans trop galérer
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar Gillou13 » 26 Fév 2009 à 16:23

merci pour les liens,

Mais même après avoir changer les affectation par '=' les noms des constantes par leurs valeurs

j'obtiens toujours un pb a l'enregistrement :

(avec le code c'est mieux )

[syntax="LotusScript"]docexcel.WorkSheets("Lotus").Columns("A:C").Select
docexcel.ActiveWorkBook.PivotCaches.Add(1, "Lotus!C1:C3").CreatePivotTable TableDestination="", TableName="Tableau croisé dynamique1", DefaultVersion=xlPivotTableVersion10
docexcel.ActiveWorkBook.ActiveSheet.PivotTableWizard TableDestination=ActiveSheet.Cells(3, 1)
docexcel.ActiveWorkBook.ActiveSheet.Cells(3, 1).Select
docexcel.ActiveWorkBook.ActiveSheet.PivotTables("Tableau croisé dynamique1").AddFields RowFields="Action", ColumnFields="Animateur"'
With docexcel.ActiveWorkBook.ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Nom apporteur")
.Orientation = 4
.NumberFormat = "0"
End With[/syntax]

je doit avoir mal retranscrit les paramétre de type : TableDestination="" pour la ligne 2 par exemple.

aussi le doc de stéphane est devant moi mais je ne trouve pas de références pour retranscrire correctement les instructions de type : docexcel.ActiveWorkBook.ActiveSheet.PivotTables("Tableau croisé dynamique1").AddFields RowFields="Action", ColumnFields="Animateur"'
Gillou13
Posteur expérimenté
Posteur expérimenté
 
Message(s) : 368
Inscrit(e) le : 15 Avr 2005 à 09:49
Localisation : lyon

Messagepar Gob0 » 26 Fév 2009 à 17:10

Gillou13 a écrit:[syntax="LotusScript"]
docexcel.ActiveWorkBook.PivotCaches.Add(1, "Lotus!C1:C3").CreatePivotTable TableDestination="", TableName="Tableau croisé dynamique1", DefaultVersion=xlPivotTableVersion10
[/syntax]


j'écrirais plutôt comme ça:
[syntax="LotusScript"]call docexcel.ActiveWorkBook.PivotCaches.Add(1, "Lotus!C1:C3").CreatePivotTable("", "Tableau croisé dynamique1", xlPivotTableVersion10)
[/syntax]
Sans oublier de faire une constante pour "xlPivotTableVersion10".
Avatar de l’utilisateur
Gob0
Posteur expérimenté
Posteur expérimenté
 
Message(s) : 378
Inscrit(e) le : 23 Août 2006 à 09:19
Localisation : Lausanne

Messagepar Gillou13 » 26 Fév 2009 à 17:20

je vais tester ça.
Gillou13
Posteur expérimenté
Posteur expérimenté
 
Message(s) : 368
Inscrit(e) le : 15 Avr 2005 à 09:49
Localisation : lyon

Suivant

Retour vers Développement

cron