Excel Downloads
Forum

Précédent   Excel Downloads Forums > Excel > Forum Excel


Réponse
 
LinkBack Outils de la discussion
Vieux 27/12/2005, 16h10   #1 (permalink)
Nico
Guest
 
Messages: n/a
Par défaut Macro - TCD à plage variable

Re-bonjour

Suite à la résolution rapide et efficace de mon précédent problème, je me tourne à nouveau vers vous, pour lever le dernier obstacle au bon fonctionnement de mon projet.

Je précise que j'utilise la version 2003 d'Excel. Par conséquent les macros (concernant les TCD) créées sous 2000 ne fonctionnent pas.

Lorsque je crée une macro pour l'élaboration d'un TCD à plage fixe, j'ai ceci :

Citation:
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatab ase, SourceData:= _
''Historique relations clients'!R3C1:R44C5').CreatePivotTable TableDestination _
:=''[Projet VBA - 15-12.xls]TCD - Analyse clientèle'!R3C3', TableName:= _
'Tableau croisé dynamique1', DefaultVersion:=xlPivotTableVersion10
Maintenant, pour un TCD à plage variable j'ai tenté ceci:

Citation:
Range('A3').CurrentRegion.Select
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatab ase, SourceData:= _
Selection).CreatePivotTable TableDestination _
:=''[Projet VBA - 15-12.xls]TCD - Analyse clientèle'!R3C3', TableName:= _
'Tableau croisé dynamique1', DefaultVersion:=xlPivotTableVersion10
Et ceci:

Citation:
dim lastrow
lastrow = range('A3').end(xldown).row
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatab ase, SourceData:= _
''Historique relations clients'!R3C1:R' & lastrow & 'C5').CreatePivotTable TableDestination _
:=''[Projet VBA - 15-12.xls]TCD - Analyse clientèle'!R3C3', TableName:= _
'Tableau croisé dynamique1', DefaultVersion:=xlPivotTableVersion10
Dans les 2 derniers cas j'ai droit au message d'erreur : 'Erreur d'éxécution '1004'. Impossible de lire la propriété PivotTables de la classe WorkSheet.'

Pouvez-vous m'aider?
  Réponse avec citation
ANNONCES
Vieux 27/12/2005, 17h04   #2 (permalink)
XLDnaute Barbatruc
 
Avatar de myDearFriend!
 
Date d'inscription: février 2005
Messages: 2 359
Par défaut Re:Macro - TCD à plage variable

Bonjour Nico, le Forum,

Je ne suis pas vraiment un spécialiste en TCD (loin de là !), mais je tenterais bien quelque chose comme ça :

Citation:
Dim Plage As Range
Dim L As Long
***** With ActiveWorkbook.Sheets('Historique relations clients')
***** ***** L = .Range('A65536').End(xlUp).Row
***** ***** Set Plage = .Range(.Cells(3, 1), .Cells(L, 5))
***** End With
***** ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
***** ***** Plage).CreatePivotTable TableDestination:= _
***** ***** ''[Projet VBA - 15-12.xls]TCD - Analyse clientèle'!R3C3', TableName:= _
***** ***** 'Tableau croisé dynamique1', DefaultVersion:=xlPivotTableVersion10
Bonnes fêtes de fin d'année.
__________________
Didier_mDF

www.mdf-xlpages.com
myDearFriend! est déconnecté   Réponse avec citation
Vieux 27/12/2005, 17h21   #3 (permalink)
Nico
Guest
 
Messages: n/a
Par défaut Re:Macro - TCD à plage variable

Cela ne fonctionne pas, mais merci pour la réponse
  Réponse avec citation
Vieux 27/12/2005, 18h13   #4 (permalink)
XLDnaute Accro
 
Avatar de Luki
 
Date d'inscription: février 2005
Version Excel : Excel 2000 (PC)
Messages: 1 087
Envoyer un message via MSN à Luki
Par défaut Re:Macro - TCD à plage variable

Bonsoir Nico, salut Didier,

J'aiu géré ce genre de problèmes ( sous 2000) en travaillant avec une plage source variable nommée.

Soit ta plage source est redimensionnée autaomatiquement par l'insertion de lignes ou de colonnes, dans ce cas, pas de soucis, ton tcd devrait marcher:

... SourceData:=range('MaSourceDeDonnées')

soit, par tu ajoutes des lignes à la suite de ta plage nommée.
Dans ce cas,il faut la redéfinir avant de générer ton TCD. ( par une methode de ton choix) et la faire renommer par le code:
Par ex:
set maplage= range('MaSourceDeDonnées').currentRegion
Maplage.name='MaSourceDeDonnées'.
puis de créer ton TCD.

N'hésites pas ....
__________________

Et un peu de pub perso!
Luki est déconnecté   Réponse avec citation
Vieux 27/12/2005, 18h43   #5 (permalink)
Nico
Guest
 
Messages: n/a
Par défaut Re:Macro - TCD à plage variable

Merci pour tes propositions. J'ai essayé les 2 possibilités, mais aucune ne fonctionne, je commence à désespérer...

J'ai toujours cette satané erreur 1004.
  Réponse avec citation
Vieux 27/12/2005, 18h45   #6 (permalink)
Nico
Guest
 
Messages: n/a
Par défaut Re:Macro - TCD à plage variable

Je précise que lorsque j'utilise le déboggeur, celui me sélectionne la ligne suivante :

Citation:
With ActiveSheet.PivotTables('Tableau croisé dynamique1').PivotFields( _
'Numéro' & Chr(10) & 'client')
Il s'agit de la ligne de code en dessous de celui que j'ai proposé avant.
  Réponse avec citation
Vieux 27/12/2005, 20h20   #7 (permalink)
XLDnaute Accro
 
Avatar de Luki
 
Date d'inscription: février 2005
Version Excel : Excel 2000 (PC)
Messages: 1 087
Envoyer un message via MSN à Luki
Par défaut Re:Macro - TCD à plage variable

Re, Nico

Donc, si le debogueur s'arrête plus loin, c'est qu'une partie du problème est résolu!

Essayons de voir la suite,. Peux tu zipper un bout de fichier et de code? si c'est possible, ce serait plus simple, ou tu du moins, coller dans le post un bout de code un peu pus long que la ligne qui plante( tout le bloc 'with' serait le bienvenu)

A+
__________________

Et un peu de pub perso!
Luki est déconnecté   Réponse avec citation
Vieux 27/12/2005, 21h25   #8 (permalink)
Nico
Guest
 
Messages: n/a
Par défaut Re:Macro - TCD à plage variable

Merci pour ton aide

J'ai joint une partie de mon projet, avec la macro en question. [file name=Exemple_20051227212508.zip size=10843]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Exemple_20051227212508.zip[/file]
Fichiers attachés
Type de fichier : zip Exemple_20051227212508.zip (10,6 Ko, 8 affichages)
  Réponse avec citation
Vieux 27/12/2005, 21h56   #9 (permalink)
Dan
XLDnaute Barbatruc
 
Avatar de Dan
 
Date d'inscription: février 2005
Localisation: Liège
Version Excel : Excel 2004 (MAC)
Messages: 3 539
Par défaut Re:Macro - TCD à plage variable

Bonsoir Nico,

en fait tes macros ne fonctionnent pas à cause du Pivot Cache que tu introduit dans ta macro.

Peux tu me dire si c'est le fichier que tu as posté qui est valable et si oui, me donner un nouveau fichier avec ce que tu attends comme résultat dans le TCD.

A te lire.

Dan est déconnecté   Réponse avec citation
Vieux 27/12/2005, 22h56   #10 (permalink)
XLDnaute Accro
 
Avatar de Luki
 
Date d'inscription: février 2005
Version Excel : Excel 2000 (PC)
Messages: 1 087
Envoyer un message via MSN à Luki
Par défaut Re:Macro - TCD à plage variable

Re Nico, salut Dan, je m'étonnais de ne pas te voir passer sur ce fil! lol!

Je suis sous 2000, donc deboguage 2003 un peu long... Mais en regardant tout ça, la majorité des problèmes semblent venir du fait que l'enregistreur de macros ne s'occupe pas de déclarer les objets et les feuilles, il travaille sur les feuilles activées par l'utilisateur, donc problèmes à l'exécution.

Je suis en train de corriger le code en nettoyant un peu tout ça. Par contre je risque de buter sur certains trucs because version 2003.

A +
__________________

Et un peu de pub perso!
Luki est déconnecté   Réponse avec citation
Vieux 27/12/2005, 23h09   #11 (permalink)
Dan
XLDnaute Barbatruc
 
Avatar de Dan
 
Date d'inscription: février 2005
Localisation: Liège
Version Excel : Excel 2004 (MAC)
Messages: 3 539
Par défaut Re:Macro - TCD à plage variable

Bonsoir Luki,

Le pb ne vient pas de cela je crois mais plutot de la manière dont est faite la macro.

Pour moi cette macro ne saurait fonctionner; De plus, l'instruction sur laquelle bute cette macro est normal dans le sens où le Chr10 n'est pas accepté.

Raison pour laquelle je demandais à Nico de remettre son fichier avec le TCD réalisé sans macro.

Dan est déconnecté   Réponse avec citation
Vieux 27/12/2005, 23h16   #12 (permalink)
Nico
Guest
 
Messages: n/a
Par défaut Re:Macro - TCD à plage variable

J'avoue ne pas encore être très familiarisé avec le langage VB, et à vrai dire, j'ai utilisé l'enregistreur de macro intégré à Excel pour construire mon TCD.

Voici ci-joint le TCD que je souhaite obtenir, avec pour plage variable les données de l'historique relations clients.

Merci d'avance [file name=Exemple2_20051227231627.zip size=11757]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Exemple2_20051227231627.zip[/file]
Fichiers attachés
Type de fichier : zip Exemple2_20051227231627.zip (11,5 Ko, 16 affichages)
  Réponse avec citation
Vieux 27/12/2005, 23h18   #13 (permalink)
Dan
XLDnaute Barbatruc
 
Avatar de Dan
 
Date d'inscription: février 2005
Localisation: Liège
Version Excel : Excel 2004 (MAC)
Messages: 3 539
Par défaut Re:Macro - TCD à plage variable



Message édité par: Dan, à: 27/12/2005 23:19
Dan est déconnecté   Réponse avec citation
Vieux 27/12/2005, 23h19   #14 (permalink)
Dan
XLDnaute Barbatruc
 
Avatar de Dan
 
Date d'inscription: février 2005
Localisation: Liège
Version Excel : Excel 2004 (MAC)
Messages: 3 539
Par défaut Re:Macro - TCD à plage variable

Merci Nico je vais regarder cela de plus près.

Tu es sûr que tu veux cette présentation ?

J'espère te poster ce soir encore.

Dan est déconnecté   Réponse avec citation
Vieux 27/12/2005, 23h28   #15 (permalink)
Nico
Guest
 
Messages: n/a
Par défaut Re:Macro - TCD à plage variable

Te presse pas, ça peut tout à fait attendre demain

Pour ce qui est de la présentation, j'ai forcément besoin des totaux des contacts commerciaux, des indicents de paiement, des demandes de renégociation de prêt et des résiliations de contrat, le tout par client.

Le but étant de calculer des scores individuels en pondérant les contacts commerciaux, les incidents de paiement etc...

Merci beaucoup
  Réponse avec citation
ANNONCES
Réponse

Liens sociaux

Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +2. Il est actuellement 07h05.


(C) 2006 Excel Downloads