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

Macros et VBA Excel Discussion :

Impossibilité de joindre un graphe en tant qu'objet dans une feuille


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de crashtib
    Homme Profil pro
    Support technico-fonctionnel
    Inscrit en
    Avril 2009
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Support technico-fonctionnel
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 221
    Par défaut Impossibilité de joindre un graphe en tant qu'objet dans une feuille
    Bonjour à tous,

    je bute depuis hier sur un problème rencontré sur la version 2007 d'excel, pour un code qui marche parfaitement sous la version 97 :

    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
    '!c lTitle: titre de la centrale
    '!c lPMax: Puissance Max de la centrale
    '!c lDonnees: Zone de données du graphe
    '!c MonNomFeuille: feuille graphique contenant l'objet graphique incorporé
    '!c NumGraphe: Numéro de l'objet graphique incorporé
    '!c LigG:Nombre de lignes pour le positionnement du graphe sur la feuille graphique
    '!c ColG:Nombre de colonnes pour le positionnement du graphe sur la feuille graphique
    '!c lNbPlanchesL: Nombre de planches en Largeur par type de combustible
    '!c lNbPlanchesH: Nombre de planches en Hauteur par type de combustible
     
    '----------------------------------------------
     
    Public Sub GenererGraphe(lTitle As String, lPMin As Long, lPMax As Long, lDonnees As Range, MonNomFeuille As String, NumGraphe As Long, LigG As Long, ColG As Long, lNbPlanchesL As Long, lNbPlanchesH As Long)
     
        Dim PositionNomGraphe As Integer
        Dim NomGraphe As String
     
        'création feuille graphique
        Charts.Add
        'copie du modèle (zone graphique)
        w_Modele.ChartObjects(1).Chart.ChartArea.Copy
        ActiveChart.Paste
     
        ActiveChart.SetSourceData Source:=lDonnees, PlotBy:=xlColumns
     
        ActiveChart.Axes(xlValue).MinimumScale = lPMin 'Minimum sur l'axe des ordonnées
        ActiveChart.Axes(xlValue).MaximumScale = lPMax 'Maximum sur l'axe des ordonnées
        ActiveChart.ChartTitle.Characters.Text = lTitle
     
    Source:=lDonnees, PlotBy:=xlColumns
     
        '        'Migre le graphe en graphique incorporé
        ActiveChart.Location Where:=xlLocationAsObject, Name:=MonNomFeuille

    La version me lève systématiquement une erreur de type 1004 à la dernière ligne, avec pour description "Dimension spécifiée non valide pour le type de graphique en cours."

    J'espère que maquestion ne semblera pas trop stupide mais je ne sais plus du tout quoi faire pour résoudre ce problème.

    Pourriez-vous m'aider ? merci

  2. #2
    Expert confirmé

    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
    Par défaut
    Bonsoir,

    Je viens de tester sous Excel2007 et je n'ai pas eu de problème.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim w_Modele As Worksheet
     
    Sub Test()
    'La feuil2 est supposée contenir le modèle ...
    Set w_Modele = Worksheets("Feuil2")
    GenererGraphe "monTitre", 1, 50, Range("A1:D50"), "Feuil1", 1, 50, 5, 5, 14
    End Sub

    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
    Public Sub GenererGraphe(lTitle As String, lPMin As Long, lPMax As Long, _
        lDonnees As Range, MonNomFeuille As String, NumGraphe As Long, _
        LigG As Long, ColG As Long, lNbPlanchesL As Long, lNbPlanchesH As Long)
     
        Dim PositionNomGraphe As Integer
        Dim NomGraphe As String
     
        'création feuille graphique
        Charts.Add
        'copie du modèle (zone graphique)
        w_Modele.ChartObjects(1).Chart.ChartArea.Copy
        ActiveChart.Paste
     
        ActiveChart.SetSourceData Source:=lDonnees, PlotBy:=xlColumns
     
        ActiveChart.Axes(xlValue).MinimumScale = lPMin 'Minimum sur l'axe des ordonnées
        ActiveChart.Axes(xlValue).MaximumScale = lPMax 'Maximum sur l'axe des ordonnées
        ActiveChart.ChartTitle.Characters.Text = lTitle
     
        '        'Migre le graphe en graphique incorporé
        ActiveChart.Location Where:=xlLocationAsObject, Name:=MonNomFeuille
     
    End Sub
    bonne soirée
    michel

Discussions similaires

  1. Insertion image en tant qu'icone dans une msgbox
    Par Luis Vieira da Silva dans le forum Interfaces Graphiques
    Réponses: 5
    Dernier message: 01/02/2012, 03h27
  2. Réponses: 5
    Dernier message: 19/12/2010, 19h06
  3. Réponses: 2
    Dernier message: 29/07/2010, 16h16
  4. [AC-2000] Déclarer une procédure en tant que variable dans une procédure globale
    Par kir4000 dans le forum VBA Access
    Réponses: 1
    Dernier message: 04/08/2009, 17h52
  5. Licence MySql en tant que BD dans une application web
    Par Volta dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 26/02/2004, 15h38

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