« 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)
Ligne 111 :
La macro suivante apparaît :
 
<sourcesyntaxhighlight lang="vb">
Sub ActualiserTCD()
'
Ligne 120 :
ActiveSheet.PivotTables("Tableau croisé dynamique1").RefreshTable
End Sub
</syntaxhighlight>
</source>
 
Il est important d’examiner les actions qui ont été enregistrées par Excel.
Ligne 134 :
 
La macro finale sera donc :
<sourcesyntaxhighlight lang="vb">
Sub ActualiserTCD()
'
Ligne 145 :
Application.ScreenUpdating = True
End Sub
</sourcesyntaxhighlight>}}
 
<nowiki> </nowiki>
Ligne 193 :
En reprenant l’exemple de l’entreprise X, le code suivant apparaît sous Visual Basic :
 
<sourcesyntaxhighlight lang="vb">
Sub CREERTCD()
'
Ligne 216 :
 
End Sub
</sourcesyntaxhighlight>
 
Le problème vient de cette partie de l’écriture :
 
<sourcesyntaxhighlight lang="vb">
ActiveWorkbook.Worksheets("ACTUALISER TCD").PivotTables( _
"Tableau croisé dynamique7").PivotCache.CreatePivotTable TableDestination:= _
"Feuil1!L3C1", TableName:="Tableau croisé dynamique1", DefaultVersion:= _
xlPivotTableVersion12
</sourcesyntaxhighlight>
 
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 :
<sourcesyntaxhighlight lang="vb">
Sub CREERTCD()
'
Ligne 264 :
 
End Sub
</sourcesyntaxhighlight>
 
{{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 :
<sourcesyntaxhighlight lang="vb">
Sub CREERTCDCHAMPS()
'
Ligne 305 :
 
End Sub
</syntaxhighlight>
</source>
 
 
Ligne 373 :
<br />
Ces noms de champs doivent correspondre aux entêtes de colonne du tableau de base.
<sourcesyntaxhighlight lang="vb">
Sub create_TCD()
 
Ligne 415 :
 
End Sub
</syntaxhighlight>
</source>
 
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".
 
<sourcesyntaxhighlight lang="vb">
Sub ModifierFonctionDuTCD()
 
Ligne 470 :
 
End Sub
</syntaxhighlight>
</source>
 
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 :
 
<sourcesyntaxhighlight lang="vb">
'
' 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>
</source>
 
 
Ligne 525 :
* Nous pouvons aussi décider d'appliquer des sous-totaux qu’à certains champs définis :
 
<sourcesyntaxhighlight lang="vb">
'
'Cette procédure paramètre les sous-totaux : n'applique des sous-totaux qu'aux champs définis
Ligne 547 :
End Sub
</syntaxhighlight>
</source>
 
== 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é.
 
<sourcesyntaxhighlight lang="vb">
 
Sub ExtraireValeurDuTCD()
Ligne 581 :
 
End Sub
</syntaxhighlight>
</source>
 
Voici ce que l’on obtient pour l'exemple 2 :