Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/09/2011, 12h50   #1
Invité régulier
 
Inscription : juin 2006
Messages : 57
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 57
Points : 8
Points : 8
Par défaut Tab Dynamique et données qui disparaisse au refresh

Bonjour,

Je débute en macro.

Je créer une macro qui fait à peu près cela :

- importation de données dans un onglet "données"
- création de colonnes supplémentaires
- mise à jour d'un tableau dynamique basé sur les données de l'onglet "données".

le tableau est déjà créé dans le fichier Excel et je souhaite juste le mettre à jour.
Mon problème est qu'à la mise à jour il ne trouve plus certaines colonnes de données.

Je le mets à jour avec le code suivant
Code :
ThisWorkbook.Worksheets("Nb de ligne par user").PivotTables("TD1").PivotCache.Refresh
une idée de ce qui pourrait poser problème ?

Merci d'avance
DaD
DaD92 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/09/2011, 16h48   #2
Membre éclairé
 
Avatar de tototiti2008
 
Inscription : octobre 2008
Messages : 327
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 327
Points : 320
Points : 320
Bonjour DaD,

Lors de sa création un TCD est basé sur une plage de cellules définie, si celle-ci ne prend pas en compte toutes tes colonnes ou toutes tes lignes, les données manqueront dans ton TCD
Cliques dans le TCD,
Tableau croisé dynamique - Assistant tableau croisé
Bouton Précédent pour voir la plage associée
__________________
tototiti2008 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/09/2011, 16h57   #3
Invité régulier
 
Inscription : juin 2006
Messages : 57
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 57
Points : 8
Points : 8
Merci tototiti2008 pour ta réponse.

Effectivement, je vois que ma plage à été modifiée.
J'ai mis au départ Données!$A:$L, et là c'est Données!$A:$K...
comment est ce que je peux re checker la plage de données avant la mise à jour?
DaD92 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/09/2011, 17h14   #4
Membre éclairé
 
Avatar de tototiti2008
 
Inscription : octobre 2008
Messages : 327
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 327
Points : 320
Points : 320
Re,

Pour la "rafraichir", tu peux essayer

Code :
1
2
   ThisWorkbook.Worksheets("Nb de ligne par user").PivotTables("TD11").PivotCache.SourceData = _
        "Données!" & Sheets("Données").Range("A1").CurrentRegion.Address(ReferenceStyle:=xlR1C1)
__________________
tototiti2008 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/09/2011, 11h22   #5
Invité régulier
 
Inscription : juin 2006
Messages : 57
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 57
Points : 8
Points : 8
ça marche impec, merci....

Histoire que je comprenne, peux tu m'expliquer cette partie de code, stp : ?
Code :
& Sheets("Données").Range("A1").CurrentRegion.Address(ReferenceStyle:=xlR1C1)
DaD92 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/09/2011, 12h25   #6
Membre éclairé
 
Avatar de tototiti2008
 
Inscription : octobre 2008
Messages : 327
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 327
Points : 320
Points : 320
Bonjour DaD,

Lorsque tu changes la source de ton TCD, il attend la référence à la plage source sous la forme "NomFeuill!R1C1:R25C32"

Donc l'adresse des cellules en style R1C1 (ou L1C1 en french )
Bon, sachant ça, on va décortiquer :

Citation:
Sheets("Données").Range("A1")
Bon, ça c'est la cellule A1 de la feuille Données, je pense qu'il n'y a pas de soucis

Citation:
.CurrentRegion
CurrentRegion va prendre les cellules remplies autour de la cellule A1 citée précédemment.
C'est comme si tu sélectionnait A1 en feuille Données, et que tu faisait Ctrl *
ça devrait sélectionner toutes les cellules contenant des données autour de A1, donc bien ce qui t'intéresse

Citation:
.Address(ReferenceStyle:=xlR1C1)
Adresse de ces cellules en style R1C1

Pense à regarder l'aide VBA, il y a pas mal d'infos disponibles
__________________
tototiti2008 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/09/2011, 12h27   #7
Invité régulier
 
Inscription : juin 2006
Messages : 57
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 57
Points : 8
Points : 8
Super, merci pour l'explication et la solution...
DaD92 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h33.


 
 
 
 
Partenaires

Hébergement Web