Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Général VBA
Général VBA Forum général VBA . Pour les logiciels spécifiques (Access, Excel, Word, ...), postez dans les bons sous forums.
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 04/05/2007, 10h41   #1
Membre du Club
 
Inscription : février 2007
Messages : 286
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 286
Points : 64
Points : 64
Par défaut actualiser tableau croisé via VB (avec nouvelle longueur)

bonjour
j'ai une procedure VB/excel qui va rajouter des données d'une feuille A à la suite d'une feuille B (même format bien sur)
la copie se passe bien, les données sont bien rajoutées à B
je souhaite ensuite rafraichir le tableau croisé attaché aux données de la feuille B (car maintenant il y en a plus)
j'ai collé dans une variable (info) le dernier numéro de ligne de ma feuille B (s)
j'essaie un truc du style
Code :
1
2
3
4
5
6
7
8
 
info = a(c) & "!r1c1:r" & s & "c15"
'a(c) = nom de mon onglet, car bouclé 7 fois pour 7 onglets différents
's = numéro de ligne, qui changera dans chaque bouclage
 
'et ensuite
ActiveSheet.PivotTables ("Tableau croisé dynamique1"), SourceData:=info
   ActiveSheet.PivotTables("Tableau croisé dynamique1").RefreshTable
ça marche pas avec le source data, pouvez vous m'aider

merci
laurent
lbar012001 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/05/2007, 10h53   #2
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
As-tu fait une recherche sur le forum VBA avec TCD ou Tableau Croisé Dynamique comme mots clé ? Il me semble que SilkyRoad a largement "débattu" du problème. Tu devrais trouver ton bonheur
A+

Edit
Je viens de regarder, tu as 15 réponses chez SilkyRoad
Déjà, tu peux regarde , change tes références R1C1 en range et nomme ta feuille, ça devrait marcher.
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/05/2007, 11h06   #3
Membre du Club
 
Inscription : février 2007
Messages : 286
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 286
Points : 64
Points : 64
Bonjour,
Je viens de rechercher à nouveau sur le forum.
En gros la méthode proposée ne me plait pas complètement car elle propose de figer une longueur maxi de données source de mon TCD afin que chaque fois que j'ajoute des données sources, un refreshtable suffise, ça marche pour sur mais c'est pas top.
J'ai bcp d'onglet et de données et si je procède ainsi je vais me retrouver avec un fichier trop gros.
J'ai vraiment besoin avant le refresh table de définir ma longueur de données réelles (je l'ai récupérée dans une variable) et ensuite faire le refresh qui alors prendra en compte cette longuer réelle et non une longueur par défaut
merci si vous avez une idée
laurent
lbar012001 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/05/2007, 11h12   #4
Membre du Club
 
Inscription : février 2007
Messages : 286
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 286
Points : 64
Points : 64
désolé j'avais pas vu ton EDIT
je regarde à nouveau
merci
laurent
lbar012001 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/05/2007, 11h22   #5
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
En adaptant ce que met Silky
Code :
1
2
3
4
5
6
7
8
9
10
Sub TCD()
Dim objCellule As Range
Dim Pvt As PivotTable
 
Set objCellule = ThisWorkbool.Sheets(a(c)).Range(Cells(1, 1), Cells(s, 15))
 
Set Pvt = Sheets(LaFeuilleOùSeTrouveLeTCD).PivotTables("Tableau croisé dynamique1")
Pvt.PivotTableWizard SourceType:=xlDatabase, _
        SourceData:=objCellule.Address(, , xlR1C1, True)
End sub
Tu dis
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/05/2007, 11h39   #6
Membre du Club
 
Inscription : février 2007
Messages : 286
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 286
Points : 64
Points : 64
ça marche pile poil
merci bien
a+

lbar012001 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 03h08.


 
 
 
 
Partenaires

Hébergement Web