positionnement graphique

positionnement graphique - VB/VBA/VBS - Programmation

Marsh Posté le 10-08-2006 à 16:19:50    

bonjour à tous ou rebonjour,  
 
Voila mon code :  
 
Dim GraphPPMTypeDef As Chart
    'création du graphique
    Set GraphPPMTypeDef = ThisWorkbook.Charts.Add
    'positionnement du graphique sur le classeur DOPA
    GraphPPMTypeDef.ChartType = xlColumnStacked
    'type graphique de la représentation des données dans le graphique
    GraphPPMTypeDef.ChartArea.Interior.Color = vbWhite
    'fond de couleur du graphique
    ActiveChart.Shapes.AddTextbox(msoTextOrientationHorizontal, 8.25, 9#, 89.25, 21.75).Select
    'ajoute une zone de texte modifiable par l'utilisateur
    If OptionButtonPPM.Value = True Then
        Selection.Characters.Text = Now()
    ElseIf OptionButtonPPDM.Value = True Then
        Selection.Characters.Text = "Information graphique PPDM Type défaut"
    End If
    GraphPPMTypeDef.SetSourceData _
                Source:=Sheets("Base de donnees DOPA" ).Range("donnee" ), _
                PlotBy:=xlColumns
    'defini les données utilisées pour la génération du graphique et leur représentation
     
    With GraphPPMTypeDef
         
        .HasTitle = True
            With .ChartTitle
                If DenoAppro.Value = True Then
                    .Characters.Text = "Indicateur PPM Appro pièces"
                ElseIf DenoCollec.Value = True Then
                    .Characters.Text = "Indicateur PPM Collection"
                ElseIf DenoApCol.Value = True Then
                    .Characters.Text = "Indicateur PPM Appro pièces | Collection"
                ElseIf DenoParCli.Value = True Then
                    .Characters.Text = "Indicateur PPM Client : " & ParCli
                End If
                .Shadow = True
                .Border.Weight = xlColumns
            End With
    End With
    'permet de choisir le titre du graphique selon les choix de l'utilisateur
    GraphPPMTypeDef.Location _
        Where:=xlLocationAsObject, _
        Name:="Graphiques Indicateurs"
        Y = Range("B8" ).Left
        'endroit ou le graphique va être placé
    End If
 
 
J'ai mis ca " Y = Range("B8" ).Left " car j'aimerais que le coin haut-gauche de mon graphique se trouve sur cette cellule mais apperement ce n'est pas la bonne ligne ou elle n'est pas placé au bon endroit car mon graphique n'est tjs pas generé la ou je le voudrai.
 
Merci à ts !

Reply

Marsh Posté le 10-08-2006 à 16:19:50   

Reply

Marsh Posté le 10-08-2006 à 16:55:05    

Essai quelque chose commeça :
 
GraphPPMTypeDef.Top = Range("B8" ).Top
GraphPPMTypeDef.Left = Range("B8" ).Left

Reply

Marsh Posté le 11-08-2006 à 08:46:14    

ca me dit méthode ou membre de données introuvables
 
en gros il connait pas le GraphTypeDef".Top"

Reply

Marsh Posté le 11-08-2006 à 09:25:14    

J'ai trouvé ca aussi :  
 
With ActiveSheet.Shape("GraphPPMTypeDef" )
        .Left = Range("B8" ).Left
        .Top = Range("B8" ).Top
    End With
 
mais ActiveShape n'est pas reconnu comme méthode :/

Reply

Marsh Posté le 11-08-2006 à 10:35:15    

Il faut utiliser ChartObjects et non pas Charts
Charts renvoie des Feuilles graphiques éléments de Workbooks
ChartObjects renvoie des graphiques objets éléments de feuilles et positionnable dans la Sheet.

Reply

Marsh Posté le 11-08-2006 à 10:54:29    

j'ai défini mon graphique en tant que ChartObjects mais  pour cette ligne :  
 
  Set GraphPPMTypeDef = ThisWorkbook.Charts.Add  
 
--> incompatibilité
 
et si je remplace Charts par ChartObjects, il ne connais pas la méthode :/

Reply

Marsh Posté le 11-08-2006 à 14:34:35    

T'as pas de touche F1 sur ton PC. T'as pas d'enregistreur ?
En fait tu dois définir ton graphic dans  
Charts.Add
mais une fois construit et placé dans une sheet :
ActiveChart.Location Where:=xlLocationAsObject, Name:="Feuil1"
il faut le reprendre en tant que  
 
ActiveSheet.ChartObjects("Graphique 1" ).Top = 200
ou...
ActiveSheet.Shapes("Graphique 2" ).Left = 77.25
 
A+

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed