Bonsoir,
Concernant la plage affectée au TCD, le mieux serait d'affecter à ton tableau origine un nom calculer avec la fonction DECALER, comme ça, tu n'as pas à modifier la plage source du TCD
=DECALER($A$1;;;NBVAL($A:$A);3)
Menu INSERTION - NOM - DEFINIR
Tu inscris un nom dans le textbox NOMS DANS LE CLASSEUR
Tu inscris la formule "=DECALER($A$1;;;NBVAL($A:$A);3)" dans le textbox FAIT REFERENCE A
Dans la formule (par exemple) :
$A$1 représente la première cellule en haut à gauche de ton tableau
NBVAL($A:$A) représente le nombre de valeur qu'il y a dans la première colonne du tableau
3 représente la largeur de ton tableau (en nombre de colonne)
Bien respecter les vides entre les ; du début.
Maintenant, pour actualiser un TCD automatiquement, tu inscrit le code suivant dans un module
Sub ActuTCD ()
ActiveSheet.PivotTables("Tableau croisé dynamique1").RefreshTable
End Sub
Puis tu affectes ta macro à un bouton de formulaire
Si tu veux que ton TCD s'actualise à chaque fois que tu cliques sur l'onglet de ta feuille, tu inscris le code suivant dans un module de la feuille concernée
Private Sub Worksheet_Activate()
ActiveSheet.PivotTables("Tableau croisé dynamique1").RefreshTable
End Sub
Concernant le nom du TCD ("Tableau croisé dynamique1"), tu l'obtiens en faisant un clic droit sur le TCD puis OPTIONS DU TABLEAU
En espérant avoir été assez clair.
@+
Ronan