Macro pour tcd

Bonjour,

Je ré-écris car j'ai l'impression que mon premier message n'a pas été enregistré.

J'ai crée des macros dans le fichier PERSONNAL.XLB.

Cette macro (voir MACRO 3 dans l'onglet MES MACROS) supprime dans un premier temps des colonnes inutiles puis devrais créer un tableau croisé dynamique. Cela a très bien fonctionné la première fois mais depuis cela ne fonctionne plus. J'ai des messages d'erreur de type "Erreur d'éxécution 1004" et un message surligné de jaune dans le code .DisplayMemberPropertyTooltips = False.

Pouvez-vous m'aider pour que cette macro fonctionne ? Merci de votre aide précieuse.

bonjour

1/

on ne supprime JAMAIS de données (si nécessaire, on masque des colonnes, ou on requête avec Power Query (tu connais ? )

ou bien encore on fait un TCD voir le 2/

2/

un TCD se crée au départ, puis il suffit de le mettre à jour

on ne "recrée" pas un TCD

amitiés

Bonjour,

Il n'y a de procédure VBA dans ton classeur.

Et pour quelle raison utilises-tu un format xls (Excel 97-2003) ?

Cdlt.

Donc je renvoie le fichier avec la macro enregistrée dans le classeur. (macro3).. ce que je ne comprends pas c'est que la première fois que j'ai fait tourner la macro elle a fonctionné dans son intégralité... pourquoi cela ne marche plus maintenant ? cela n'a pas l'air d'être une macro très compliquée pourtant...

. Merci d'avance pour votre aide. Florence

Re,

Avant d'aller plus loin.

Tu n'as pas répondu à la question posée sur le format du fichier xls ?

Et travailles-tu réellement avec Excel 2013 ?

Ta procédure crée un TCD au format Excel 2002 (xlPivotTableVersion10).

A te relire.

Cdlt.

je veux bien vous répondre mais je ne sais pas comment faire pour connaitre la version exacte d'excel ?

Maintenant le classeur PERSONAL a disparu (dans le centre de gestion)... je n'y comprends plus rien ! ci joint une copie écran : on ne voit plus le classeur de données personnelles... et il n'est pas non plus dans les éléments désactivés....

2019 07 08 16 06 39 export indicateur 201907080342 xls mode de compatibilite enregistre

Re,

Pour connaître la version exacte d'Excel que tu utilises :

Ruban, Fichier, Compte…

snip 20190708163544

Ton fichier Personal.xlsb doit se trouver à cette adresse :

C:\Users\Jean-Eric\AppData\Roaming\Microsoft\Excel\XLSTART

A te relire.

Cdlt.

Alors visiblement pour la version excel il s'agit de 365 Pro plus et bonne nouvelle j'ai retrouvé le classeur de macros personnelles

Bonjour,

Je ne sais toujours pas pour quelle raison, tu utilises un format de fichier xls (Excel 97-2003) !...

Sinon, ta procédure initiale peut se résumer à celle-ci.

Elle doit être enregistrée dans ton classeur de macros personnelles (Personal.xlsb).

Elle doit être exécutée à partir de la feuille active du classeur.

L'idéal, étant de placer un bouton dans la barre d'accès rapide pour l'exécuter.

* Ne pas lancer 2 fois la procédure dans le même classeur (pas prévu de sécurité pour cet exemple).

A te relire.

Cdlt.

10fr1964.zip (20.85 Ko)
Public Sub CreatePivotTable()
'D?claration des variables
Dim wb As Workbook
Dim ws As Worksheet
Dim rngPT As Range
Dim PTCache As PivotCache
Dim PT As PivotTable

    'Classeur actif
    Set wb = ActiveWorkbook
    'Donn?es source (plage de cellules) du TCD ? cr?er
    '? partir de la feuille active
    Set rngPT = ActiveSheet.Cells(1).CurrentRegion
    'Cr?ation du cache du TCD
    Set PTCache = wb.PivotCaches.Create(xlDatabase, rngPT)
    'Insertion feuille pour restitution du TCD
    Set ws = wb.Worksheets.Add(after:=wb.Worksheets(Worksheets.Count))
    ws.Name = "TCD"
    'Cr?ation du TCD
    Set PT = PTCache.CreatePivotTable(ws.Cells(3, 1), "TCD_1")
    'Mise en forme du TCD
    With PT
        .ManualUpdate = True
        .AddFields RowFields:="Country"
        With .PivotFields("Actual__YTD_")
            .Orientation = xlDataField
            .Function = xlSum
            .NumberFormat = "# ##0,00_ ;[Red]-# ##0,00\ ;"
            .Caption = ChrW(931) & " Actual__YTD_"
        End With
        .RowAxisLayout xlTabularRow
        .TableStyle2 = "PivotStyleMedium1"
        .ManualUpdate = False
    End With

    ActiveWindow.DisplayGridlines = False

End Sub

Bonjour et grand merci.

Cela marche parfairement maintenant.

Mais au final, qu'est-ce qui faisait que cela ne marchait pas ?

Re,

Tout et rien !...

Re,

Avant d'aller plus loin.

Tu n'as pas répondu à la question posée sur le format du fichier xls ?

Et travailles-tu réellement avec Excel 2013 ?

Ta procédure crée un TCD au format Excel 2002 (xlPivotTableVersion10).

A te relire.

Cdlt.

Cdlt.

Ben pour le fichier xls, je ne sais pas... j'ai suisvi vos instructions pour connaitre la version... malheureusement je n'en asais pas plus, je suis sur mon ordi pro et du coup la suite Office est en mode cloud j'ai l'impression... je suis sensée travailler sur quelle version pour que la macro marche alors ?

Re,

La procédure devrait fonctionner à partir de Excel 2007 (il y a 12 ans !...).

Cdlt.

Cela ne me dit toujours pas pourquoi cela a fonctionné puis plus du tout... merci quand meme^.

Rechercher des sujets similaires à "macro tcd"