« Macros-commandes VBA/Création de Tableau croisé » : différence entre les versions
Contenu supprimé Contenu ajouté
m Robot : Remplacement de texte automatisé (-(\<br \/\>\s?){2,} +<br>\n) |
Dépeuplement de Catégorie:Pages utilisant des balises source obsolètes |
||
Ligne 111 :
La macro suivante apparaît :
<
Sub ActualiserTCD()
'
Ligne 120 :
ActiveSheet.PivotTables("Tableau croisé dynamique1").RefreshTable
End Sub
</syntaxhighlight>
Il est important d’examiner les actions qui ont été enregistrées par Excel.
Ligne 134 :
La macro finale sera donc :
<
Sub ActualiserTCD()
'
Ligne 145 :
Application.ScreenUpdating = True
End Sub
</
<nowiki> </nowiki>
Ligne 193 :
En reprenant l’exemple de l’entreprise X, le code suivant apparaît sous Visual Basic :
<
Sub CREERTCD()
'
Ligne 216 :
End Sub
</
Le problème vient de cette partie de l’écriture :
<
ActiveWorkbook.Worksheets("ACTUALISER TCD").PivotTables( _
"Tableau croisé dynamique7").PivotCache.CreatePivotTable TableDestination:= _
"Feuil1!L3C1", TableName:="Tableau croisé dynamique1", DefaultVersion:= _
xlPivotTableVersion12
</
Le problème est que nous spécifions la feuille de destination et également la plage du tableau croisé dynamique dans l’écriture. La conséquence de ce type d’écriture est que la macro n’est pas dynamique. Ce qui explique que la macro ne puisse s’exécuter.
Ligne 244 :
* Sans contrainte des champs :
<
Sub CREERTCD()
'
Ligne 264 :
End Sub
</
{{Remarque|contenu=Il est possible de modifier les intitulés des colonnes uniquement lorsque les champs ne sont pas définis dans la macro.}}
* Avec contrainte des champs :
<
Sub CREERTCDCHAMPS()
'
Ligne 305 :
End Sub
</syntaxhighlight>
Ligne 373 :
<br />
Ces noms de champs doivent correspondre aux entêtes de colonne du tableau de base.
<
Sub create_TCD()
Ligne 415 :
End Sub
</syntaxhighlight>
Voici le résultat attendu :
Ligne 450 :
Dans l'exemple ci-dessous elle modifie la fonction de synthèse du champ "Cotisations", afin d'afficher la moyenne et de la renommer "Cotisation moyenne".
<
Sub ModifierFonctionDuTCD()
Ligne 470 :
End Sub
</syntaxhighlight>
Voici les autres constantes disponibles pour la propriété Function, que l’on peut appliquer de la même manière que xlAverage ci-dessus :
Ligne 503 :
* Nous pouvons tout d’abord enlever les sous-totaux de l’ensemble des champs du TCD :
<
'
' Cette procédure parcourt l’ensemble des champs d'un TCD afin de leur enlever les sous-totaux s'ils existent
Ligne 519 :
End Sub
</syntaxhighlight>
Ligne 525 :
* Nous pouvons aussi décider d'appliquer des sous-totaux qu’à certains champs définis :
<
'
'Cette procédure paramètre les sous-totaux : n'applique des sous-totaux qu'aux champs définis
Ligne 547 :
End Sub
</syntaxhighlight>
== Comment extraire une valeur d'un TCD ? ==
Ligne 562 :
Il n'aura donc qu’à lancer cette macro chaque mois afin de voir apparaître par un message (MsgBox) le montant recherché.
<
Sub ExtraireValeurDuTCD()
Ligne 581 :
End Sub
</syntaxhighlight>
Voici ce que l’on obtient pour l'exemple 2 :
|