IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Erreur d'exécution dans un Tableau Croisé Dynamique


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Inscrit en
    Septembre 2010
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 52
    Par défaut Erreur d'exécution dans un Tableau Croisé Dynamique
    Bonjour,
    j'ai une "erreur d'exécution '13', Incompatibilité de type" lors de la création d'un tableau croisé dynamique. Le debug ne m'aide pas beaucoup.

    Voici le code, que j'ai écrit sur base d'infos du forum:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Public Sub AjoutTCD(FileSVxl As String, NameFeuille As String, NbLignes As Long)
         Dim NomTCD As String
     
         Windows(FileSVxl).Activate
         NomTCD = "TCD_PlanProto"
     
         Sheets(NameFeuille).Select
     
         Dim PlageTCD As Range: Set PlageTCD = ActiveWorkbook.Worksheets(NameFeuille).Range("A1:AF" & NbLignes)
         Dim tcd As PivotCaches: Set tcd = ActiveWorkbook.PivotCaches
     
        Sheets.Add before:=Worksheets(1)
     
        tcd.Create(SourceType:=xlDatabase, SourceData:=PlageTCD, Version:=xlPivotTableVersion10). _
            CreatePivotTable Tabledestination:=Worksheets(1).Range("A3"), TableName:="Tableau croisé dynamique3", DefaultVersion:=xlPivotTableVersion10
     
        With ActiveSheet.PivotTables("Tableau croisé dynamique3").PivotFields("Programme")
            .Orientation = xlPageField
            .Position = 1
        End With
    L'erreur se produit sur la ligne tcd.create.
    Quelqu'un pourrait-il m'indiquer où chercher l'erreur, je ne sais pas quel argument n'est pas bien déclaré.
    D'avance merci

  2. #2
    Invité
    Invité(e)
    Par défaut bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim PlageTCD As String:  PlageTCD = NameFeuille & "!A1:AF" & NbLignes
    http://www.developpez.net/forums/d13...e/#post7499314
    Dernière modification par Invité ; 10/01/2014 à 14h54.

  3. #3
    Membre averti
    Inscrit en
    Septembre 2010
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 52
    Par défaut suite
    merci pour ton aide.
    Malheureusement, j'ai une erreur de compilation sur la déclaration de la plage: il n'accepte pas la concatenation AF & Nblignes.
    J'ai essayé avec +, sans succès...
    Merci

  4. #4
    Membre averti
    Inscrit en
    Septembre 2010
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 52
    Par défaut nouvel essai
    j'ai bien vérifié pour délacrer la plageTCD de type string et pas de type range
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Public Sub AjoutTCD(FileSVxl As String, NameFeuille As String, NbLignes As Integer)
         Dim NomTCD As String
     
         Windows(FileSVxl).Activate
         NomTCD = "TCD_PlanProto"
     
         Sheets(NameFeuille).Select
     
         Dim PlageTCD As String:  PlageTCD = NameFeuille & "!A1:AF" & NbLignes
         Dim tcd As PivotCaches: Set tcd = ActiveWorkbook.PivotCaches
     
        Sheets.Add before:=Worksheets(1)
     
        tcd.Create(SourceType:=xlDatabase, SourceData:=PlageTCD, Version:=xlPivotTableVersion10). _
            CreatePivotTable Tabledestination:=Worksheets(1).Range("A3"), TableName:="Tableau croisé dynamique3", DefaultVersion:=xlPivotTableVersion10
     
        With ActiveSheet.PivotTables("Tableau croisé dynamique3").PivotFields("Programme")
            .Orientation = xlPageField
            .Position = 1
        End With
    J'ai maintenant une "ERREUR D'EXECUTION 1004, REFERENCE NON VALIDE, toujours sur la création du TCD.....

  5. #5
    Invité
    Invité(e)
    Par défaut
    tu as regardé le lien que j'ai mis?

    http://www.developpez.net/forums/d13...e/#post7499314

  6. #6
    Membre averti
    Inscrit en
    Septembre 2010
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 52
    Par défaut
    bonsoir,
    j'ai chargé le .zip et j'ai regardé le code qui me semble très complexe.
    Je ne vois pas bien comment utiliser ton code pour trouver l'erreur....
    J'ai sans doute loupé une étape.
    MErci

  7. #7
    Invité
    Invité(e)
    Par défaut
    En realité il est très simple tout est dans le module de class.

    Tu trouverras les sub comme tu fait.

    Apeès je t'invite à regarder son utilisation modul1
    tu verras que c'est simple en plus garace au modul de class tu as la saisie intuitive
    Dernière modification par Invité ; 10/01/2014 à 18h25.

Discussions similaires

  1. Réponses: 0
    Dernier message: 13/02/2008, 12h11
  2. Réponses: 1
    Dernier message: 05/07/2007, 18h28
  3. VBA Excel :séparation dans un tableau croisé dynamique
    Par hiline6 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 28/11/2006, 08h52
  4. Réponses: 4
    Dernier message: 27/11/2006, 23h20
  5. [VBA-Excel] Faire un filtre dans un tableau croisé dynamique
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 27/11/2006, 15h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo