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

VB.NET Discussion :

[VB.NET][EXCEL] Modifier le titre d'un graphique


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2005
    Messages : 307
    Par défaut [VB.NET][EXCEL] Modifier le titre d'un graphique
    (Re)Bonjour !

    C'est encore moi! Décidement ce début d'année est difficile...

    Alors voilà : j'essais de créer un graphique en tant qu'objet sur une feuille excel.

    Voici mon code :
    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
    Private Sub GenererGraphes()
     
            Dim xlRange As Excel.Range
            xlRange = GetSheet(5).Range("$A$4:$B$14")
     
            xlBook.Charts.Add()
            With xlBook.ActiveChart
                .ChartType = XlChartType.xlColumnClustered
                .SetSourceData(xlRange)
                .Location(XlChartLocation.xlLocationAsObject, "Synthèse")
                .HasTitle = True
                .ChartTitle.Characters.Text = "UN GRAPHIQUE"
                .HasLegend = False
                .ApplyDataLabels(XlDataLabelsType.xlDataLabelsShowValue, False)
            End With
     
        End Sub
    A la ligne ".HasTitle..." l'appli lève l'exception suivante : "Exception de HRESULT : 0x800401A8."

    Si je commente cette ligne, c'est la ligne d'après qui lève l'exception.
    Si je commente ces 2 lignes , c'est la ligne d'après qui lève l'exception.
    Si je commente ces 3 lignes , c'est la ligne encore après qui lève l'exception.
    et enfin, si je commente les 4 dernières lignes du bloc "With", ça marche!

    Je ne comprends d'où vient cette erreur. Pour le code, je me suis inspiré d'une macro Excel (comme indiqué dans un des posts )

    Merci pour votre aide

  2. #2
    Expert confirmé
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Par défaut
    c'est cette ligne qui doit poser problème
    .Location(XlChartLocation.xlLocationAsObject, "Synthèse")

    Par contre à contourner ca ne va pas être du gateau

  3. #3
    Expert confirmé
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Par défaut
    rectification, ca doit marcher en créant un chartobject, comme dans l'exemple suivant :

    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
    Imports Microsoft.Office.Interop
    Public Class Form1
     
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim AppExcel As Excel.Application = New Excel.Application
            AppExcel.SheetsInNewWorkbook = 6
            Dim xlBook As Excel.Workbook = AppExcel.Workbooks.Add()
            Dim xlSheet As Excel.Worksheet = CType(xlBook.Sheets(5), Excel.Worksheet)
            xlSheet.Range(xlSheet.Cells(1, 1), xlSheet.Cells(10, 1)).FormulaLocal = "=Ligne()"
            xlSheet.Range(xlSheet.Cells(1, 2), xlSheet.Cells(10, 2)).FormulaLocal = "=Ligne()*colonne()"
            Dim xlRange As Excel.Range
            xlRange = xlSheet.Range(xlSheet.Cells(1, 1), xlSheet.Cells(10, 2))
            Dim xlCharts As Excel.ChartObjects
            Dim xlChart As Excel.ChartObject
            xlCharts = CType(xlSheet.ChartObjects, Excel.ChartObjects)
            xlChart = xlCharts.Add(20.0F, 20.0F, 300.0F, 300.0F)
            With xlChart.Chart
                .ChartType = Excel.XlChartType.xlColumnClustered
                .SetSourceData(xlRange)
                .HasTitle = True
                .ChartTitle.Characters.Text = "UN GRAPHIQUE"
                .HasLegend = False
                .ApplyDataLabels(Excel.XlDataLabelsType.xlDataLabelsShowValue, False)
            End With
            AppExcel.Visible = True
        End Sub
     
    End Class

  4. #4
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2005
    Messages : 307
    Par défaut
    Bonjour bidou!

    Peux-tu me dire à quoi correspondent les paramètres indiqués dans le xlCharts.Add() ? [xlChart = xlCharts.Add(20.0F, 20.0F, 300.0F, 300.0F)]

    Sinon pour mon problème, ce que j'ai fais c'est que j'ai sorti les lignes qui posaient problème du bloc "With", et maintenant ça marche :
    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
    Private Sub GenererGraphes()
     
            Dim xlRange As Excel.Range
            xlRange = GetSheet(5).Range("$A$4:$B$14")
     
            xlBook.Charts.Add()
            With xlBook.ActiveChart
                .ChartType = XlChartType.xlColumnClustered
                .SetSourceData(xlRange)
                .Location(XlChartLocation.xlLocationAsObject, "Synthèse")
             End With
     
            xlBook.ActiveChart.HasTitle = True
            xlBook.ActiveChart.ChartTitle.Text = "UN GRAPHIQUE"
            xlBook.ActiveChart.HasLegend = False
            xlBook.ActiveChart.ApplyDataLabels(XlDataLabelsType.xlDataLabelsShowValue, False)
     
        End Sub
    Bizarre hein !!??

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 21
    Par défaut
    Il faut que ton chart soit créée pour pouvoir lui assigner un nom.

    Je sais c'est con.. mais cette API ne finit plus de m'étonner.

    Ce qui explique pourquoi ca ne marche pas dans ton bloc with. C'est un peu comme si tu était tjs dans la même instruction.

    Bref c'est pourri..

  6. #6
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Par défaut
    Citation Envoyé par kornetmuse Voir le message
    Il faut que ton chart soit créée pour pouvoir lui assigner un nom.

    Je sais c'est con.. mais cette API ne finit plus de m'étonner.

    Ce qui explique pourquoi ca ne marche pas dans ton bloc with. C'est un peu comme si tu était tjs dans la même instruction.

    Bref c'est pourri..
    déterrage de post qui date de janvier 2007
    au moins ca pourra aider ceux qui tombe sur ce post par un moteur de recherche comme toi je supose...
    Bienvenu sur developpez.com kornetmuse

Discussions similaires

  1. Réponses: 4
    Dernier message: 30/06/2011, 13h12
  2. Precision d'une Assembly .Net (COM) modifiée par EXCEL
    Par Bertrand Larat dans le forum Windows Forms
    Réponses: 0
    Dernier message: 18/12/2008, 17h18
  3. Simple copie du texte d'une cellule excel dans le titre d'un graphique chart
    Par pinto_armindo dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 30/05/2007, 10h59
  4. vba excel - Donner un titre a un graphique en vba
    Par brethomeau dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 16/11/2005, 09h13
  5. [EXCEL]Modifier les marges d'une page dans Excel
    Par ms91fr dans le forum Composants VCL
    Réponses: 4
    Dernier message: 06/01/2004, 15h26

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