Nous allons à présent enregistrer la macro du bouton "variable 2". Grosso modo, cette macro fait d'un coup ce que feraient les macros "var2" et "tableau" en les exécutant l'une après l'autre (notez que cette macro ne peut pas s'enregistrer en se contentant d'exécuter "var2" puis "tableau", le résultat étant désastreux).
B
de la feuille "formules", une certaine plage pré-copiée de la feuille "data", puis créer le tableau croisé des colonnes A
et B
. Si vous voulez voir ce que vous faites pendant l'enregistrement de cette macro, vous avez intérêt à éxécuter l'une des 6 macros "sexe", "mois", ... AVANT de commencer l'enregistrement. B1
puis écrire "var2" en B1
(si ce n'est déjà fait).A
et B
(sélectionner A1
peut suffire) et activer le menu Données > Tableau croisé.
Vous allez certainement avoir envie de tester cette macro avec d'autres variables. Mauvaise surprise : le tableau n'est pas rafraîchi malgré tous ces efforts !
C'est un autre petit bug d'OpenOffice, mais celui-ci est facile à rectifier. Éditez cette macro "var2" (Outils > Macros > Gérer les macros > OpenOffice.org Basic...) et regardez les dernières lignes de code (un peu avant la dernière ligne end sub
). Vous allez trouver ceci :
rem ----------------------------------------------------------------------
rem dispatcher.executeDispatch(document, ".uno:RecalcPivotTable", "", 0, Array())
Effacez le deuxième rem
pour obtenir
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:RecalcPivotTable", "", 0, Array())
puis sauvez. Maintenant, votre macro devrait fonctionner !