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

Jeremy45380 Messages postés 5 Date d'inscription jeudi 16 décembre 2010 Statut Membre Dernière intervention 21 décembre 2010 - 16 déc. 2010 à 09:49
Jeremy45380 Messages postés 5 Date d'inscription jeudi 16 décembre 2010 Statut Membre Dernière intervention 21 décembre 2010 - 20 déc. 2010 à 11:30
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

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
16 déc. 2010 à 12:00
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
0
Jeremy45380 Messages postés 5 Date d'inscription jeudi 16 décembre 2010 Statut Membre Dernière intervention 21 décembre 2010
20 déc. 2010 à 11:30
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 :(
0
Rejoignez-nous