Page 2 sur 2

MessagePublié: 26 Fév 2009 à 17:50
par Gillou13
bon, je met le problème en stand by.

déjà, quand j'essaie d'exécuter la macro dans excel sa plante!!!

je fait "enregister nouvelle macro" > créé le tableau avec l'interface excel > fin d'enregisterement macro > lancer macro > plantage.

(si vous me chercher je serai surment sur une fofo VBA...)

MessagePublié: 07 Juil 2010 à 14:35
par Gillou13
Bonjour a tous,

Je déterre ce sujet,

une nouvelle fois on me demande de créer des tableaux croisés dynamiques lia du LS.

et la 'réinterpretation' du VBA ne vonctionne pas dans ce cas de figure.

en VBA:
Code : Tout sélectionner
  ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
        "Donnée!R1C1:R34C8").CreatePivotTable TableDestination:="", TableName:= _
        "Tableau croisé dynamique2", DefaultVersion:=xlPivotTableVersion10
    ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
    ActiveSheet.Cells(3, 1).Select
    ActiveSheet.PivotTables("Tableau croisé dynamique2").AddFields RowFields:= _
        Array("Action", "Données"), ColumnFields:="Analyste BPI"
    With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("Nb")
        .Orientation = xlDataField
        .Position = 1
    End With
    With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields( _
        "Delais (nb jours)")
        .Orientation = xlDataField
        .Caption = "Moyenne de Delais (nb jours)"
        .Function = xlAverage
        .NumberFormat = "0"
    End With


en LS (de mon cru qui ne fonctionne pas...) :
Code : Tout sélectionner
...
   
   'Test tableau croisé dynamique :
   Dim ActiveWorkbook       As Variant
   Dim ActiveSheet            As Variant
   Dim temp                   As Variant
   
   Set ActiveWorkbook = applicat.ActiveWorkbook
   Set ActiveSheet = applicat.ActiveSheet
   
   Call ActiveWorkbook.PivotCaches.Add(1, "Donnée!R1C1:R34C8").CreatePivotTable("","Tableau croisé dynamique2",-4148)
   Call ActiveSheet.PivotTableWizard(ActiveSheet.Cells(3, 1))
   ActiveSheet.Cells(3, 1).Select
   Call  ActiveSheet.PivotTables("Tableau croisé dynamique2").AddFields("Action", "Données","Analyste BPI")
   With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("Nb")
      .Orientation = xlDataField
      .Position = 1
   End With
   With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("Delais (nb jours)")
      .Orientation = xlDataField
      .Caption = "Moyenne de Delais (nb jours)"
      .Function = xlAverage
      .NumberFormat = "0"
   End With
   


il me sort un message d'erreur a 1er call : "Automation object member not found".

Merci d'avance pour votre aide.

MessagePublié: 08 Juil 2010 à 08:46
par Michael DELIQUE
salut

normalement tout ce qui est faisable en VBA tu peut le faire en LS

mais ça peut prendre du temp à mettre au point

MessagePublié: 08 Juil 2010 à 10:11
par Gillou13
Eureka,

J'ai trouvé mon bonneur sur le fofo d'IBM :

http://www-10.lotus.com/ldd/46dom.nsf/D ... enDocument

La syntaxe entre VBA et LS est un peu différente sur ces tableaux croisés.
voila pourquoi le 'copier-coller' n'a pas fonctionné (pour un cette fois).