Page 1 sur 2
Gestion fichier excel poussé...

Publié:
24 Fév 2009 à 17:00
par Gillou13
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

Publié:
24 Fév 2009 à 17:10
par Michael DELIQUE
salut
si c'est faisable en VBA sous excel c'est faisable en LS

Publié:
24 Fév 2009 à 17:11
par mike76
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à)

Publié:
24 Fév 2009 à 17:12
par mike76
t'as été plus rapide que moi Michael

Publié:
24 Fév 2009 à 17:20
par gouff
Regardes la méthode vba "CreatePivotTable"

Publié:
24 Fév 2009 à 17:32
par mike76
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é.

Publié:
24 Fév 2009 à 17:37
par Gillou13
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...

Publié:
24 Fév 2009 à 17:55
par gouff
je crois que l'affectation ":=" c'est de la formule....

Publié:
24 Fév 2009 à 17:58
par mike76
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

Publié:
25 Fév 2009 à 09:13
par Michael DELIQUE
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

Publié:
25 Fév 2009 à 09:15
par mike76
bonne idée Michaël car des personnes ne connaissent pas cette option d'Excel et c'est vraiment très pratique

Publié:
25 Fév 2009 à 09:19
par Michael DELIQUE
Moi ça m'a plus d'une fois permis de me sortir d'affaire sans trop galérer

Publié:
26 Fév 2009 à 16:23
par Gillou13
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"'

Publié:
26 Fév 2009 à 17:10
par Gob0
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".

Publié:
26 Fév 2009 à 17:20
par Gillou13
je vais tester ça.