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 :

Chart Excel via VBS


Sujet :

VBScript

  1. #1
    Membre confirmé Avatar de dsolheid
    Inscrit en
    Décembre 2007
    Messages
    141
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Décembre 2007
    Messages : 141
    Par défaut Chart Excel via VBS
    Bonjour,

    J'ai un script VBS qui construit un graphe sous Excel.
    J'essaye que ce graphe soit placé sur la même page que les données, malheureusement, à chaque fois Excel (v 2007) crée une page suplémentaire avec ce graphique.

    Avez vous une idée ?

    Ex :
    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
    Dim objExcel
    Set objExcel = CreateObject("Excel.Application")
     
    ' Make it visible
    objExcel.Visible = true
     
    ' Add a new workbook
    Dim wb
    'set wb = app.workbooks.add
    Set wb = objExcel.Workbooks.Open("C:\tmp\perf.csv") 
    objExcel.Cells(1, 1).Value = "Time"
    objExcel.Cells(1, 2).Value = "Memory / Available Bytes"
    objExcel.Cells(1, 3).Value = "CPU %"
     
     
     
    dim rng
    set rng = wb.Activesheet.Range("A1").Resize(20,2)
     
    wb.Charts.Add
    wb.ActiveChart.ChartType = 2
    wb.ActiveChart.SetSourceData rng, 2 ' xlColumns

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    ton problème est surtout un problème excel .. tu devrai regarder l'aide en ligne de celui-ci et peu-être la commande :

    ou tu ne précise pas la feuille ou créer ton graphique....

  3. #3
    Membre confirmé Avatar de dsolheid
    Inscrit en
    Décembre 2007
    Messages
    141
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Décembre 2007
    Messages : 141
    Par défaut
    Citation Envoyé par bbil Voir le message
    ton problème est surtout un problème excel .. tu devrai regarder l'aide en ligne de celui-ci et peu-être la commande :

    ou tu ne précise pas la feuille ou créer ton graphique....
    Merci pour l'aide ..

    effectivement, en VB.NET, je spécifie d'autres paramètres ...
    mais en VBS, j'ai du mal à savoir comment les passer ...,

    Et les constantes ne sont pas définie (ex; pour un type de graphique).

    En VB.NET j'utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // position
    oChart.Location(XlChartLocation.xlLocationAsObject, xlSheet.Name);
    Pour modifier la position ..

    mais en VBS, XlChartLocation.xlLocationAsObject, je le sors d'où ?


    Où puis-je trouver toutes ces infos ?

    Encore merci

  4. #4
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    dans la fenêtre exécution de l'éditeur VBE d'Excel.

    ALT+F11 puis CTLR+G

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ? XlChartLocation.xlLocationAsObject

  5. #5
    Membre confirmé Avatar de dsolheid
    Inscrit en
    Décembre 2007
    Messages
    141
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Décembre 2007
    Messages : 141
    Par défaut
    Citation Envoyé par bbil Voir le message
    dans la fenêtre exécution de l'éditeur VBE d'Excel.

    ALT+F11 puis CTLR+G

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ? XlChartLocation.xlLocationAsObject
    C'est vrai que c'est super pour obtenir des infos sur les paramètres des fonctions et sur la valeur des constantes ..

    J'ai pourtant du mal à placer le "Chart" sur la feuille courante, où les données sources se trouvent ....

  6. #6
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Citation Envoyé par dsolheid Voir le message
    ....
    J'ai pourtant du mal à placer le "Chart" sur la feuille courante, où les données sources se trouvent ....
    tu as écris cela comment ?

  7. #7
    Membre confirmé Avatar de dsolheid
    Inscrit en
    Décembre 2007
    Messages
    141
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Décembre 2007
    Messages : 141
    Par défaut
    Citation Envoyé par bbil Voir le message
    tu as écris cela comment ?
    Pour l'instant wb.Charts.Add

    Justement .. je vois dans la doc ..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Syntaxe
     
    expression.Add(Avant, Après, Nombre, Type)
     
    expression   Variable qui représente un objet Charts.
     
    Paramètres
     
    Nom Obligatoire/Facultatif Type de données Description 
    Avant Facultatif Variante Objet qui spécifie la feuille avant laquelle la nouvelle feuille est ajoutée. 
    Après Facultatif Variante Objet qui spécifie la feuille après laquelle la nouvelle feuille est ajoutée. 
    Nombre Facultatif Variante Nombre de feuilles à ajouter (une par défaut). 
    Nombre Facultatif Variante Constante XlChartType qui représente le type de graphique à ajouter.
    Comment lui dire, place le "Chart" sur la feuille courante ...

    Je fais =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ' Declare a range object to hold our data
    dim rng
    set rng = wb.Activesheet.Range("A1").Resize(20,2)
     
    wb.Charts.Add
    wb.ActiveChart.ChartType 2 '70 'xl3dPieExploded
    wb.ActiveChart.SetSourceData rng, 2 ' xlColumns
    wb.ActiveChart.Location 2, "perf" 'xlLocationAsObject
    Je fais un ActiveChart.Location 2, "perf", car cet appel doit normalement me placer le chart fraichement comme objet sur la feuille "perf".
    Le 2 = xlLocationAsObject

    Mais je n'arrive pas au résultat attendu ...

  8. #8
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    et si tu essai un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    set oSheet = wb.sheets(1)
    set oChart  = wb.Charts.Add
    oChart.ChartType 2 '70 'xl3dPieExploded
    oChart.SetSourceData rng, 2 ' xlColumns
    oChart.Location 2, oSheet.Name 'xlLoc

  9. #9
    Membre confirmé Avatar de dsolheid
    Inscrit en
    Décembre 2007
    Messages
    141
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Décembre 2007
    Messages : 141
    Par défaut
    Citation Envoyé par bbil Voir le message
    et si tu essai un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    set oSheet = wb.sheets(1)
    set oChart  = wb.Charts.Add
    oChart.ChartType 2 '70 'xl3dPieExploded
    oChart.SetSourceData rng, 2 ' xlColumns
    oChart.Location 2, oSheet.Name 'xlLoc
    Alors là ...

    je suis une bille ...

    Non seulement votre solution marche ... mais la mienne marchait aussi ...

    le soucis, c'est que je ne voyais pas passer une erreur en arrière plan ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Erreur d'exécution Microsoft VBScript: Cet objet ne gère pas cette propriété ou cette méthode: 'oChart.ChartType'
    Pourtant =>
    ChartType Renvoie ou définit le type de graphique. Type de données XlChartType en lecture-écriture.

    Je pense que je vais trouver pour la suite ..

    Encore merci !

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

Discussions similaires

  1. Executer macro excel via VBS
    Par zoubli dans le forum VBScript
    Réponses: 17
    Dernier message: 20/12/2006, 13h00
  2. [VB.NET] problème d'utilisation de substotal (excel via VB)
    Par Pynuch dans le forum Windows Forms
    Réponses: 4
    Dernier message: 17/11/2005, 13h53
  3. [débutant] manipulation de doc Excel via C++
    Par htcrusoe dans le forum C++
    Réponses: 4
    Dernier message: 17/03/2005, 19h57
  4. Connection avec MS Query (Excel) via ODBC MySQL
    Par javigle dans le forum Installation
    Réponses: 7
    Dernier message: 23/11/2003, 21h03
  5. [Kylix] Excel via kylix
    Par Billy joel dans le forum EDI
    Réponses: 1
    Dernier message: 23/05/2002, 11h57

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