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
Supporter XLD
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 !!
 

Fichiers joints

Pierrot93

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

Re,

Aarf pas 2007 sous le coude et avec le convertisseur, je ne récupère pas un tcd en tant que tel....
 

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....
 

Fichiers joints

Dugenou

XLDnaute Barbatruc
Supporter XLD
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
 

Fichiers joints

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
Supporter XLD
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
 

robby98800

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

Je veux bien le faire avec une formule mais je la connais pas !
 

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!
 

robby98800

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

Ah non c'est bon je viens de trouver. Il suffisait de remplacer "Libelle" par "Adresse".
Merci à tous
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas