[Macros XLS]Plusieurs petits problèmes de débutant.
Jeremy45380
Messages postés5Date d'inscriptionjeudi 16 décembre 2010StatutMembreDernière intervention21 décembre 2010
-
16 déc. 2010 à 09:49
Jeremy45380
Messages postés5Date d'inscriptionjeudi 16 décembre 2010StatutMembreDernière intervention21 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
A voir également:
[Macros XLS]Plusieurs petits problèmes de débutant.
NHenry
Messages postés15066Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 mai 2023157 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