[Macros XLS]Plusieurs petits problèmes de débutant.

Signaler
Messages postés
5
Date d'inscription
jeudi 16 décembre 2010
Statut
Membre
Dernière intervention
21 décembre 2010
-
Messages postés
5
Date d'inscription
jeudi 16 décembre 2010
Statut
Membre
Dernière intervention
21 décembre 2010
-
Bonjour à tous, comme indiqué dans mon profil, je suis amateur en Visual Basic (j'ai appris les bases If, Do while, ...) d'un point de vue scolaire.

Je viens dé créer un code grâce à l'enregistrement de maccro cependant je rencontre un problème et j'ai deux questions supplémentaires.
Mon code fonctionne très bien quand il est dans un module, cependant quand je veux l'affecter à un bouton inséré dans la feuille Excel ( VBAProject(fichier) - MicrosoftExcelObjets - Feuil1(nom) ) la fonction "columns("D:D").select" crée un bug (je ne saurais dire si d'autres actions buguent car mon code ne va pas plus loin). Sauriez-vous m'expliquer si je dois modifier quelque chose ou autre s'il vous plait?


En espérant que ce mail ne sera ni trop long ni trop lourd, j'ai deux autres questions et j'espère pouvoir faire d'une pierre deux coups.

Avec cette maccro, je souhaite créer des tableaux croisés dynamiques dans Excel. De par l'enregistrement j'ai réussi et cela fonctionne très bien.
La premiere question est que l'ayant fait à la main cela a enregistré pour la matrice (2e critère du tcd) les cellules actuelle. Si cette matrice vient a changer de taille (seul le nombre de ligne pourrait changer,nombre de colonnes fixe) comment puis-je le prendre en compte? (je pensais à une boucle do while pour compter le nombre de ligne i puis ""ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"'Données filtrées'!R1C1:R 3393 iC5").CreatePivotTable TableDestination: ="", _ TableName:="Tableau croisé dynamique MOQ", DefaultVersion:= _xlPivotTableVersion10""
Mais je n'ai pas réussi.

La deuxième question (et promi, la dernière) est que dans les paramètres de mon tcd je souhaite ne garder que le 0. J'ai donc (à la main) sélectionné ce critère ce qui m'a donné ce code:
"With ActiveSheet.PivotTables("Tableau croisé dynamique MOQ").PivotFields("MOQ")
.PivotItems("1").Visible = False
.PivotItems("8").Visible = False
.PivotItems("10").Visible = False
.PivotItems("16").Visible = False
......."
Ici encore, si les critères viennent à changer, cela ne retirera que ceux que j'ai écrit. J'ai essayé de faire PivotItems(<>0).Visible=False, sans succès. Auriez-vous ici encore une solution?

Très cordialement.
Merci d'avance.
Jérémy

2 réponses

Messages postés
14828
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
18 novembre 2021
157
Bonjour,

N'ayant pas utilisé les tableaux croisés avec Excel, je peux néanmoins répondre à une de tes questions :
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"'Données filtrées'!R1C1: " & cstr(i) & " C5").CreatePivotTable TableDestination: ="", _ TableName:="Tableau croisé dynamique MOQ", DefaultVersion:= _xlPivotTableVersion10

Mon site
Messages postés
5
Date d'inscription
jeudi 16 décembre 2010
Statut
Membre
Dernière intervention
21 décembre 2010

Bonjour,

J'ai effectivement testé votre proposition et ceci fonctionne très bien pour sélectionner l'ensemble de ma matrice de données. Merci beaucoup!

Cependant je ne toruve pas de solutions pour mes autres problèmes :(