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 :

PB de création d'un graphique sur une feuille créée dans une macro [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Avril 2013
    Messages : 2
    Par défaut PB de création d'un graphique sur une feuille créée dans une macro
    Bonjour à tous,

    J'ai créé une macro qui permet d'ajouter des onglets à chaque fois qu'il y a un nouveau poste. Ces onglets se mettent à jours automatiquement avec la grille de valeur principale. Je souhaite ajouter sur ces feuilles qui sont crées un diagramme secteur qui se base sur certaines cellules de la feuille crée. Le problème c'est que j'ai un message d'erreur par rapport à la ligne où la macro recupere les valeurs (en rouge). Si quelqu'un peut m'aider, ce serai gentil.

    Le 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
    Sub Inserer_poste()
    
    Dim N As String 'Nom
    Dim Tempo As String 'Nom temporaire pour la page créé
    N = Sheets("Interface").Range("c3") 'Page où je rentre le nom du poste et je l'ajoute via le bouton macro
    Tempo = "Temporary" 
    Sheets("Grille").Select
    Sheets.Add After:=Sheets(Sheets.Count) 'Insertion d'une feuille
        ActiveSheet.Name = Tempo
        ActiveSheet.Range("c2") = N
        ' Ajout Graph
        ActiveSheet.Shapes.AddChart.Select
        ActiveChart.ChartType = xlPie
        ActiveChart.ChartArea.Select
        ActiveChart.SeriesCollection.NewSeries
        ActiveChart.SeriesCollection(1).Name = Range("A4")
        ActiveChart.SeriesCollection(1).Values = _
            "=Temporary!$G$11;Temporary!$G$15;Temporary!$G$19;Temporary!$G$22"    ActiveChart.SeriesCollection(1).XValues = "={""M"".""E"".""F"".""A""}"
        ActiveChart.SeriesCollection(1).Select
        ActiveChart.SeriesCollection(1).Points(1).Select
        With Selection.Format.Fill
            .Visible = msoTrue
            .ForeColor.RGB = RGB(255, 255, 0)
            .Solid
        End With
        
        ActiveSheet.Name = N
        
    End Sub

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Quelque chose comme ceci à adapter car tu créé une feuille vide et tu y insère le graphique se rapportant à des cellules vides de la nouvelle feuille
    En plus, tu ne gère pas si la feuille existe déjà

    Une première approche
    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
    Sub Inserer_poste()
    Dim Ws As Worksheet
    Dim Ch As Chart
     
    Set Ws = Worksheets.Add(After:=Sheets(Sheets.Count))    'Insertion d'une feuille
    Ws.Range("C2").Value = Worksheets("Interface").Range("C3").Value
    ' Ajout Graph
    Set Ch = Ws.ChartObjects.Add(100, 100, 400, 260).Chart
     
    With Ch
        .ChartType = xlPie
        With .SeriesCollection.NewSeries
            .Name = Ws.Range("A4")
            .XValues = "={""M"";""E"";""F"";""A""}"
            .Values = "=" & Ws.Name & "!$G$11," & Ws.Name & "!$G$15," & Ws.Name & "!$G$19," & Ws.Name & "!$G$22"
            With .Points(1).Format.Fill
                .Visible = msoTrue
                .ForeColor.RGB = RGB(255, 255, 0)
                .Solid
            End With
        End With
    End With
    Set Ch = Nothing
    Ws.Name = Worksheets("Interface").Range("C3").Value
    Set Ws = Nothing
    End Sub

  3. #3
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Avril 2013
    Messages : 2
    Par défaut
    Marci beaucoup Mercatog c'est top, ça fait 4 jours que j'épluche le net pour trouver, j'ai encore pas mal de progrès à faire...
    En tout cas merci pour le coup de main.
    Je passe le sujet en résolu.

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

Discussions similaires

  1. [XL-2003] Extraction d'une zone ovale d'une photo insérée dans une feuille
    Par bolide7 dans le forum Excel
    Réponses: 4
    Dernier message: 21/04/2011, 18h45
  2. Réponses: 6
    Dernier message: 13/11/2009, 16h06
  3. Réponses: 1
    Dernier message: 10/10/2007, 10h42
  4. [VBA-E] Evvènement sur clic de souris dans une feuille Excel
    Par Mut dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/12/2006, 14h40
  5. Réponses: 4
    Dernier message: 16/05/2006, 23h15

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