Comment compter le nombre de lignes dans un tableau croisé dynamique ?

robby98800

XLDnaute Nouveau
Bonjour,

Je voudrais compter le nombre de ligne dans un tableau croisé dynamique. J'ai trouvé sur FAQ MS-Excel, une macro qui permettrait de le faire mais ça ne fonctionne pas. Voici le code :
Code :

Code:
Sub compterNombreLignesTCD()
        Dim Pvt As PivotTable
        'Définit le TCD   
        Set Pvt = Worksheets("Feuil1" ).PivotTables("Tableau croisé dynamique1" )
       
        'TableRange1:
        'plage contenant l'intégralité du rapport de tableau croisé dynamique,
        'à l'exclusion des champs de page.
        MsgBox Pvt.TableRange1.Rows.Count
       
        'TableRange2 :
        'plage contenant l'intégralité du rapport de tableau croisé dynamique,
        'y compris les champs de page.
        MsgBox Pvt.TableRange2.Rows.Count
    End Sub


Je pense que le problème vient du fait que mes données sources ne sont pas la "Feuil1" en entière mais seulement 3 colonnes.

Merci de votre aide !!
 

Pierrot93

XLDnaute Barbatruc
Re : Comment compter le nombre de lignes dans un tableau croisé dynamique ?

Bonjour,

une macro qui permettrait de le faire mais ça ne fonctionne pas.
cela veut dire quoi ? message d'erreur ou pas le résultat attendu ? As tu adapté le nom des objets ? que cherches tu réellement à faire ? peut être nous en dire un peu plus....

bonne journée
@+
 
Dernière édition:

Dugenou

XLDnaute Barbatruc
Re : Comment compter le nombre de lignes dans un tableau croisé dynamique ?

Bonjour,
Pour ce que je connais des TCD et du VBA : tu dois indiquer la feuille ou se trouve le TCD et non celle ou se trouvent les données
Cordialement
 

robby98800

XLDnaute Nouveau
Re : Comment compter le nombre de lignes dans un tableau croisé dynamique ?

Quand j'exécute la macro, il y a une erreur d'exécution 1004. J'ai adapté le nom des objets (en fait j'ai mis le nom des feuilles qui intéressées à la place de "Feuil1" et "Tableau croisé dynamique 1") mais comme je disais, le problème est que je ne sais pas si je dois mettre le nom de la feuille en entier ou juste une plage pour mes données source.

Je vous envoie en pièce jointe le sujet de mon travail.
- L'adresse est le numéro de la machine
- Le libellé est le nom de l'erreur
- La colonne nommé "colonne" me permet de ne prendre que les apparitions d'erreur (APP) pour mon calcul d'occurence de chaque erreur dans le tableau croisé dynamique.

Je classe des erreurs par machine et comme le nombre d'erreur change chaque semaine, je voudrais connaitre le nombre de ligne dans le tableau croisé dynamique.

J'espère que j'ai été assez clair !

Merci !!
 

Pièces jointes

  • Exemple1.xlsx
    99.8 KB · Affichages: 251
  • Exemple1.xlsx
    99.8 KB · Affichages: 273
  • Exemple1.xlsx
    99.8 KB · Affichages: 265

Pierrot93

XLDnaute Barbatruc
Re : Comment compter le nombre de lignes dans un tableau croisé dynamique ?

Re,

toujours pas de tcd dispo dans ton fichier.... comprends pas pourquoi une macro.... j'ai refais un tcd... A voir si cela peut te convenir... pas sûr....
 

Pièces jointes

  • classeur3.xls
    264.5 KB · Affichages: 190
  • classeur3.xls
    264.5 KB · Affichages: 224
  • classeur3.xls
    264.5 KB · Affichages: 228

Dugenou

XLDnaute Barbatruc
Re : Comment compter le nombre de lignes dans un tableau croisé dynamique ?

Bonjour,
J'ai collé le texte de ta macro et j'ai juste changé feuil1 pour tcd puisque c'est la feuille qui contient le tcd.
J'ai pas de message d'erreur mais le nb de lignes affiché n'est pas correct.
A toi de voir
 

Pièces jointes

  • lignesTCDMacro.xlsm
    110.7 KB · Affichages: 186

maxou

XLDnaute Nouveau
Re : Comment compter le nombre de lignes dans un tableau croisé dynamique ?

Salut
si la premiere ligne de ton tableau est fixe et qu'il commence en A1 par exemple utilise ce code:

NumLigne = Worksheets("feuill1").Range("A1").End(xlDown).Row

feuill1 correspond au nom de l'onglet ou est present le tableau. A modifier si l'onglet a été renommé.

Cordialement
 

robby98800

XLDnaute Nouveau
Re : Comment compter le nombre de lignes dans un tableau croisé dynamique ?

En fait si, le nombre de ligne est correct car il comptabilise aussi les entêtes ! Je voudrais aussi savoir comment est ce que je peux faire pour que le résultat que donne la macro se mette dans une cellule de tel sorte que je puisse m'en servir par la suite.

Merci et dsl pour ces questions de débutant !
 

Dugenou

XLDnaute Barbatruc
Re : Comment compter le nombre de lignes dans un tableau croisé dynamique ?

re,
ben franchement, écrire un macro pour mettre le résultat dans une cellule et t'en resservir après !!! pourquoi ne pas faire une formule ??

Code:
Sub compterNombreLignesTCD()
        Dim Pvt As PivotTable
        'Définit le TCD
        Set Pvt = Worksheets("tcd").PivotTables("Tableau croisé dynamique1")
       
        'TableRange1:
        'plage contenant l'intégralité du rapport de tableau croisé dynamique,
        'à l'exclusion des champs de page.
        range(A1)= Pvt.TableRange1.Rows.Count - 3
end sub
 

R@chid

XLDnaute Barbatruc
Re : Comment compter le nombre de lignes dans un tableau croisé dynamique ?

Bonjour @ tous,
J'ai pas tout lu, le nombre de ligne en TCD correspond @ :
Code:
=SOMME(SI(Tableau1[Libelle]<>"";1/NB.SI(Tableau1[Libelle];Tableau1[Libelle])))
@ valider par Ctrl+Maj+Entree

ou bien si "Tableau1[Libelle]" ne contient ps de cellules vides :
Code:
=SOMMEPROD(1/NB.SI(Tableau1[Libelle];Tableau1[Libelle]))
@ valider par simple Entrée

les 2 formules renvoient 8

Amicalement
 

robby98800

XLDnaute Nouveau
Re : Comment compter le nombre de lignes dans un tableau croisé dynamique ?

Oui merci, ça marche parfaitement j'ai utilisé la seconde formule car je n'ai pas de cellules vides dans le TCD.
Connais une autre formule pour calculer le nombre de colonne cette fois-ci ?

Encore merci!
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 910
Membres
101 837
dernier inscrit
Ugo