IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

Problème avec Excel et tableau croisé dynamique


Sujet :

VBScript

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12
    Points : 7
    Points
    7
    Par défaut Problème avec Excel et tableau croisé dynamique
    Bonsoir à tous,

    j'ai un petit soucis et ne maitrisant pas encore énormément VBScript, je viens vous le soumettre.

    Je vais essayer d'être clair et exhaustif même si je doute d'y parvenir.

    Alors voilà mon problème, j'ai un fichier Excel qui récupère les données d'un cube OLAP avec un tableau croisé dynamique. Jusqu'ici tout va bien. Néanmoins, mon soucis est qu'à partir de ce tableau, je veux générer des graphes divers et variés dans un nouveau classeur et je voudrais pour cela le faire via un VBScript.

    Je vais illustrer d'une capture ça sera ptetre plus efficace et parlant :


    Donc voilà, je veux, d'une part générer un nouveau classeur avec un onglet par Tableau croisé dynamique dans ma feuille source (capture) (pour ça c'est bon j'ai fait) avec les feuilles nommées du contenu du champ Geographie de mes TCD (par contre là je bloque) et d'autre part générer des graphes à partir de ces TCD (et là j'ai pas encore réellement de piste).

    Ci-joint une capture du classeur que je veux obtenir en résultat :


    Et enfin le code que j'ai déjà fait, et qui donc me génère un nouveau calsseur avec le nombre de feuilels quej e veux mais je n'arrive pas à récupérer le contenu de mes champs Geographie de mes tableaux croisés dynamiques et j'ai aps de pistes pour les graphes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
     
    Option Explicit
     
    ' Nom et chemein du template
    Dim tpl, fic
    Set fic = "monfichiersource.xls"
    Set tpl = "monfichiergénéré.xls"
     
    ' Procédure chargée de générer le template "Sexe-Progress"
    Private Sub createTemplate()
    	' Déclaration des variables utilisées
    	Dim xapp	' variable de création de l'objet
    	Dim wb		' objet correspondant au classeur Sexe-Progress
    	Dim i		' compteur de parcours des feuilles du nouveau classeur
    	Dim j		' compteur de parcours des pivots du classeur TBB...
    	Dim xchart	' variable de création du graphique Sexe-Progress
    	Dim pvt		' variable de lecture de pivotTable
    	Dim field	' variable de lecture des champs des pivots
     
    	' on instancie un nouvel objet Excel
    	Set xapp = WScript.CreateObject("Excel.Application")
    	xapp.Visible = True
    	xapp.DisplayAlerts = False
     
    	' on créé du nouveau classeur Sexe-Progress
    	set wb = xapp.Workbooks.Add
     
    	' 20 on ouvre le fichier TBB
    	xapp.WorkBooks.Open(fic)
     
    	' on vérifie si le classeur créé comporte le bon nombre de feuilles (à savoir un par pays d'étude dans TBB)
    	If wb.WorkSheets.Count < xapp.WorkSheets(5).PivotTables.Count Then
    		For i = wb.Worksheets.count To xapp.WorkSheets(5).PivotTables.Count
    			wb.Worksheets.Add
    		Next
    	End If
     
    	' 30 on renomme les feuilles du classeur par les noms des pays d'étude
    	For j = 1 To xapp.WorkSheets(5).PivotTables.Count
    		Set pvt = xapp.WorkSheets(5).PivotTables(j)
    		Set field = pvt.PivotFields(6)
     
    		' MsgBox pvt.GetData("Geographie").Value
     
    		' on change le nom de la feuille par le nom du pays étudié
    		' wb.Worksheets(j).Name = pvt.GetData("Geographie").Value
    		wb.Worksheets(j).Name = pvt
    	Next
     
    	' on sauvegarde le fichier généré
    	wb.SaveAs(tpl)
    	xapp.DisplayAlerts = True
    End Sub
    Voilà j'espère que ça sera assez clair, sinon n'hésitez pas à me le dire j'essaierais d'être plus explicite.

    Merci d'avance à ceux qui auront le courage de m'aider.

  2. #2
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    mais je n'arrive pas à récupérer le contenu de mes champs Geographie de mes tableaux croisés dynamiques
    peut tu montrer le code que tu as fait pour les récuperer ?
    Et pourquoi tu n'y arrives pas, ce code provoque une erreru ? ou il n'y a pas d'erreur, mais le code ne fait pas ce que tu souhaites ?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    A vrai dire, tout mon code est là, le fait est que je ne sais pas du tout comment on récupère les valeurs des champs des TCD voire même les valeurs générées par celui-ci.

    Donc à vrai dire pas d'erreur en particulier, ar je ne sais pas comment m'y prendre

  4. #4
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    As tu regardé dans les doc VBA Excel ?
    As tu cherché sur le net ?

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Oui j'ai fait cela, mais le fait est qu'en VBA on trouve tout ce qu'on veut là dessus mais pas pour le VBS :/

  6. #6
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Il y a très peu de différence entre le VBA et le VBS.

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Ok ben merci alors, j'ai réussi une partie de ma demande, je cherche encore comment récupérer les valeurs du TCD (sur le screen, les valeurs NbUser, en fonction du Sexe et de la Semaine) et comment générer des graphes à partir de là.

    Si quelqu'un sait m'indiquer le chemin, ça serait sympa.

  8. #8
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Tu m'as dit que tu trouves tout cela en VBA, alors prends ces codes VBA et adaptent les en VBS, ce n'est pas compliqué. SI tu n'y arrives pas alors on peut t'aider, il suffira de nous poster le code.

  9. #9
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    bonsoir

    j'espère que ce lien pourra t'aider

    http://www.developpez.net/forums/sho...36#post1392336


    bonne soirée
    michel

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Merci à tous les deux pour votre aide, je m'en suis finalement bien sorti.

    Merci à vous.

    Bonne soirée.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2002] Excel 2002 : Tableau croisé dynamique
    Par Laurette23 dans le forum Excel
    Réponses: 5
    Dernier message: 23/02/2012, 16h38
  2. excel 2003 tableau croisé dynamique
    Par fred43 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 17/04/2009, 10h40
  3. Réponses: 3
    Dernier message: 07/05/2008, 09h30
  4. Excel 2007, Tableau Croisé Dynamique
    Par phenixnerull dans le forum Excel
    Réponses: 5
    Dernier message: 22/06/2007, 16h22
  5. Pb de chemin en VBA excel sur tableau croisé dynamique
    Par hiline6 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/02/2007, 14h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo