Pb avec la feuille du TCD créé via vba

  • Initiateur de la discussion Initiateur de la discussion cookies
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

cookies

XLDnaute Occasionnel
Bonjour le forum,

Après quelques essaies, j'ai du mal à créer mon TCD via vba. L'erreur se situe au niveau de la feuille qu'il crée. Voici le code (j'ai enlevé la suite de la construction du TCD)

Code:
Sub Macro1()

    Range("A18").Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlDown)).Select
    Sheets.Add
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        "Ordonnancement!R18C1:R1048576C32", Version:=xlPivotTableVersion12). _
        CreatePivotTable TableDestination:="Feuil2!R3C1", TableName:= _
        "Tableau croisé dynamique1", DefaultVersion:=xlPivotTableVersion12
    Sheets("Feuil2").Select
    Cells(3, 1).Select
    With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Magasin" _
        )
        .Orientation = xlPageField
        .Position = 1
    End With

Donc ça marche la première fois car il crée bien la feuil2. Mais ensuite si je refait le TCD il crée donc une feuil3 et ça ne marche plus.
J'ai essayer :
à la place de Sheets("Feuil2").Select
j'ai tenté
Sheets(Shhets.Count).Activiate
ou Sheets(1).Activiate

mais rien.
Merci d'avance
Cookies
 
Re : Pb avec la feuille du TCD créé via vba

Bonjour,

bah... si "feuil2" est la feuille crée, inutile de la selectionner, la feuille active sera toujours lanouvelle feuuille tu dois pouvoir supprimer "Sheets("Feuil2").Select"

bon après midi
@+
 
Re : Pb avec la feuille du TCD créé via vba

J'ai tenté mais non.
Car en fait une fois mes analyses faite, je supprime cette feuille de TCD de mon classeur.
Lorsque je relance la macro il génère une feuille nommée Feuil3, et pour tant j'ai suppr la feuil2
 
Re : Pb avec la feuille du TCD créé via vba

Re,

oui mais si tu supprimes l'instruction de selection plus de souci, l'exécution se fera sur la feuille active, donc la feuille nouvellement crée... ou alors quelque chose doit m'échapper...
 
Re : Pb avec la feuille du TCD créé via vba

Salut,
non je pense que c'est moi qui loupe un truc. Ta réponse fait sens... mais tjrs pas... 😉
Il bug sur la création du TCD.
Le code ne marche que une seule fois en fait.
J'ai tenté ça (comme tu m'as dit)

Code:
Sub Macro1()

    Range("A18").Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlDown)).Select
    Sheets.Add
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        "Ordonnancement!R18C1:R1048576C32", Version:=xlPivotTableVersion12). _
        CreatePivotTable TableDestination:="Feuil2!R3C1", TableName:= _
        "Tableau croisé dynamique1", DefaultVersion:=xlPivotTableVersion12

    Cells(3, 1).Select
    With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Magasin" _
        )
        .Orientation = xlPageField
        .Position = 1
    End With

humhum...
 
Re : Pb avec la feuille du TCD créé via vba

Salut,

C'est tout le paragraphe de la création du TCD
Code:
 ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        "Ordonnancement!R18C1:R1048576C32", Version:=xlPivotTableVersion12). _
        CreatePivotTable TableDestination:="Feuil2!R3C1", TableName:= _
        "Tableau croisé dynamique1", DefaultVersion:=xlPivotTableVersion12

et la fleche sur la dernière ligne eet il met "erreur définie par l'application ou par l'objet" erreur '1004'

Merci.
Cookies
 
Re : Pb avec la feuille du TCD créé via vba

Bonjour à tous,

Nomme ta feuille ajoutée "TCD"
En début de code supprime la et renomme la "TCD"

Fais appel à cette feuille pour la construction du TCD

VB:
Range("A18").Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlDown)).Select
    Application.DisplayAlerts = 0
    Sheets("TCD").Delete
    Application.DisplayAlerts = 1
    Sheets.Add
    Sheets.Name = "TCD"
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        "Ordonnancement!R18C1:R1048576C32", Version:=xlPivotTableVersion12). _
        CreatePivotTable TableDestination:="TCD!R3C1", TableName:= _
        "TCD1", DefaultVersion:=xlPivotTableVersion12


    Cells(3, 1).Select
    With ActiveSheet.PivotTables("TCD1").PivotFields("Magasin")
        .Orientation = xlPageField
        .Position = 1
    End With

A+ à tous
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
1
Affichages
666
Réponses
9
Affichages
2 K
Réponses
2
Affichages
869
Retour