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 :

Liaison tardive positionnement de graph Excel (VBE 2008 .Net)


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Février 2009
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 5
    Par défaut Liaison tardive positionnement de graph Excel (VBE 2008 .Net)
    Bonjour,
    Dans une feuille Excel je souhaite incorporer un graphique sous un tableau.
    Avec l' "Option Strict On" activée (sur Excel.Shapes ou Excel.ChartArea) je ne parviens pas à faire tourner mon outil : "Impossible de définir la propriété Top/Height/Width de la classe"
    Si je désactive l'option, xlapp.ActiveSheet.Shapes(1).Incrementleft(-179.25) ou .Shapes(1).left=1 , remplissent leurs offices.

    Mon souhait serait de comprendre comment utiliser correctement les propriétés afin de ne plus passer par une liaison tardive. Ci-dessous 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
    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
    54
    55
    56
    57
    58
    Option Strict On
    Option Explicit On
    
    Imports System.ComponentModel
    Imports System.IO
    Imports Microsoft.Office.Interop
    Imports ACRODISTXLib
    
    Public Class Main
    
           Dim xlapp As New Excel.Application
    [.]
       Private Sub Creation_Graphique(ByRef sheet As Excel.Worksheet, ByVal strName_sheet AsString, ByVal strDate AsString)
           Dim Obj_Graph As Excel.Chart
           Dim Plage_Etiquette, Plage_données As Excel.Range
           Dim Obj_SerieCol As Excel.Series
           Dim Graph_titre As Excel.ChartTitle
           Dim Graph_Area As Excel.ChartArea
    
    'Création ma zone graphique
            xlapp.Charts.Add()
    
    
    'Repositionnement
    'avec Excel.Shapes ou ChartArea
    'Anomalie Impossible de définir la propriété Top/Height/Width de la classe
    'En désactivant le Option strict on :
    'xlapp.ActiveSheet.Shapes(1).IncrementLeft(-179.25)
    'xlapp.ActiveSheet.Shapes(1).IncrementTop(67.5)
    'ou
    'xlapp.ActiveSheet.Shapes(1).left = 1
    'xlapp.ActiveSheet.Shapes(1).top = 150
    
    'Personnalisation rapide de mon graphe
    
            Obj_Graph = xlapp.ActiveChart
    
            With Obj_Graph
                .HasLegend = False
                .ChartType = Excel.XlChartType.xlColumnClustered
                .Location(Excel.Xlic, strName_sheet)
            EndWith
    
            xlapp.ActiveChart.HasTitle = True
    
            Plage_Etiquette = xlapp.Range("A3:A8")
            Plage_données = xlapp.Range("D3:D8")
    
     'Alimentation des données et valeurs
            Obj_SerieCol = CType(xlapp.ActiveChart.SeriesCollection(1), Excel.Series)
            Obj_SerieCol.XValues = Plage_Etiquette
            Obj_SerieCol.Values = Plage_données
            Obj_SerieCol.Border.ColorIndex = 2
    
    'Changement du Titre
             xlapp.ActiveChart.ChartTitle.Text = Recap du " & strDate
        EndSub

  2. #2
    Membre à l'essai
    Inscrit en
    Février 2009
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 5
    Par défaut
    Résolu pour Office 2003 en faisant un :
    Dim obj_ChartObj As Excel.ChartObject
    obj_ChartObj = CType(sheet.ChartObjects(1), Excel.ChartObject)

    Je vous mets le code si cela interesse quelqu'un.

    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
     
           Dim Obj_Graph As Excel.Chart
            Dim Plage_Etiquette, Plage_données As Excel.Range
            Dim Obj_SerieCol As Excel.Series
            Dim obj_ChartObj As Excel.ChartObject
     
            sheet.Activate()
     
            Plage_Etiquette = xlapp.Range("A3:A8")
            Plage_données = xlapp.Range("D3:D8")
     
            xlapp.Charts.Add()
            Obj_Graph = xlapp.ActiveChart
     
            With Obj_Graph
                .HasLegend = False
                .ChartType = Excel.XlChartType.xlColumnClustered
                .Location(Where:=Excel.XlChartLocation.xlLocationAsObject, Name:=strName_sheet)
            End With
     
            Obj_SerieCol = CType(xlapp.ActiveChart.SeriesCollection(1), Excel.Series)
            Obj_SerieCol.XValues = Plage_Etiquette
            Obj_SerieCol.Values = Plage_données
            Obj_SerieCol.Border.ColorIndex = 2
     
            'Changement du Titre
            obj_ChartObj = CType(sheet.ChartObjects(1), Excel.ChartObject)
            obj_ChartObj.Chart.HasTitle = True
            obj_ChartObj.Chart.ChartTitle.Text = strDate
     
            'Repositionnement de la zone graphique
            obj_ChartObj.Locked = False
            obj_ChartObj.Left = 12
            obj_ChartObj.Top = 125
            obj_ChartObj.Width = 400
            obj_ChartObj.Height = 250

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

Discussions similaires

  1. [Débutant] Modifier le positionnement des labels sur graph Excel
    Par Chtulus dans le forum C#
    Réponses: 5
    Dernier message: 23/01/2012, 20h32
  2. Liaison Office / Exporter vers MS Excel
    Par oceanediana dans le forum Access
    Réponses: 4
    Dernier message: 28/07/2006, 11h12
  3. [VB6] création graphes Excel à 2 axes
    Par getea85 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 24/04/2006, 09h48
  4. Liaison Access vers Word et Excel
    Par CCRNP dans le forum Access
    Réponses: 1
    Dernier message: 14/03/2006, 21h54
  5. Créer un graph Excel à partir d'un fichier
    Par kult dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 10/11/2005, 14h06

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