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 :

VBA et graphique en cascade


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Femme Profil pro
    Controleur de gestion
    Inscrit en
    Décembre 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Controleur de gestion

    Informations forums :
    Inscription : Décembre 2018
    Messages : 3
    Points : 3
    Points
    3
    Par défaut VBA et graphique en cascade
    Bonjour à tous

    Un petit appel à l'aide pour une mauvaise en VBA (c'est ma première publication)
    J'ai l'habitude d'utiliser un fichier déjà tout prêt qui me fait un super graphique en cascade (à l'époque le graphique en cascade n'existait même pas dans les graphiques proposés d'excel, mais il reste quand même mieux que ce qu'Excel propose maintenant).
    Et là je voulais juste ajouter des lignes au-dessus de ce fichier pour pouvoir intégrer directement le graphique au-dessous d'autres informations et du coup la macro ne marche plus.

    VBA.xlsm

    Le texte vba du fichier intial était le 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
    Private Sub CommandButton1_Click()
     
    Call AttachLabelsToPoints
     
    End Sub
     
    Sub AttachLabelsToPoints()
     
    'Dimension variables.
    Dim Counter As Integer
    Dim Indexligne As Integer
     
        Range("C10").Select
        Selection.End(xlDown).Select
        Indexligne = ActiveCell.Row
     
     
    For Counter = 1 To Indexligne - 9
     
    ActiveSheet.ChartObjects(1).Activate
    ActiveChart.SeriesCollection(8).Points(Counter).HasDataLabel = True
    ActiveChart.SeriesCollection(8).Points(Counter).DataLabel.Text = Format(ActiveSheet.Cells(10, 3).Offset(Counter - 1, 0).Value, "# ##0")
    ActiveChart.SeriesCollection(8).Points(Counter).DataLabel.Position = xlLabelPositionAbove
    Next Counter
     
    End Sub
    Comme j'ai rajouté des lignes au dessus, j'ai changé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Range("C10").Select
    et ActiveChart.SeriesCollection(8).Points(Counter).DataLabel.Text = Format(ActiveSheet.Cells(10, 3).
    Mais ça ne marche pas...

    Help please?

    Par la suite, j'aimerais également avoir 2 graphiques de ce type sur la même feuille et pareil je bloque sur la partie VBA.

    Merci à vous!

  2. #2
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 951
    Points : 9 280
    Points
    9 280
    Par défaut
    hello,
    Citation Envoyé par Anne973 Voir le message
    Comme j'ai rajouté des lignes au dessus, j'ai changé:
    Range("C10").Select
    et ActiveChart.SeriesCollection(8).Points(Counter).DataLabel.Text = Format(ActiveSheet.Cells(10, 3).

    Mais ça ne marche pas...
    je pense que c'est la ligne suivante qui est mauvaise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For Counter = 1 To Indexligne - 9
    comme tu as tout décalé de 11 lignes ça serait plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For Counter = 1 To Indexligne - 20
    Si ta cellule de départ des points avait été une cellule nommée (ex : debpoint en C21) tu n'aurais pas eu le problème car ta cellule nommée aurait suivi le décalage.
    Exemple de code pour une cellule nommée :
    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
    Sub AttachLabelsToPoints()
     
    'Dimension variables.
    Dim Counter As Integer
    Dim Indexligne As Integer
    Dim debRowPoint As Integer
        Range("debpoint").Select
        Selection.End(xlDown).Select
        Indexligne = ActiveCell.Row   
        debRowPoint = Range("debpoint").Row
     
    For Counter = 1 To Indexligne - (debRowPoint - 1)
     
    ActiveSheet.ChartObjects(1).Activate
    ActiveChart.SeriesCollection(8).Points(Counter).HasDataLabel = True
    ActiveChart.SeriesCollection(8).Points(Counter).DataLabel.Text = Format(ActiveSheet.Cells(debRowPoint, 3).Offset(Counter - 1, 0).Value, "# ##0")
    ActiveChart.SeriesCollection(8).Points(Counter).DataLabel.Position = xlLabelPositionAbove
    Next Counter
     
     
    End Sub
    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  3. #3
    Candidat au Club
    Femme Profil pro
    Controleur de gestion
    Inscrit en
    Décembre 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Controleur de gestion

    Informations forums :
    Inscription : Décembre 2018
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Merci beaucoup, ça marche!!!!
    merci merci merci

  4. #4
    Candidat au Club
    Femme Profil pro
    Controleur de gestion
    Inscrit en
    Décembre 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Controleur de gestion

    Informations forums :
    Inscription : Décembre 2018
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Puis-je abuser et demander comment faire pour avoir 2 graphiques de ce type sur la même feuille et 2 macros qui s'exécutent chacune sur leur graphique attitré?

Discussions similaires

  1. [VBA-E] Graphique et position
    Par Itori dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 23/06/2006, 14h50
  2. [VBA-E]Graphique Excel
    Par shinobi dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 04/04/2006, 13h40
  3. [VBA-E] graphique avec plage de donnees variable
    Par gigs dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 03/04/2006, 14h50
  4. [VBA-E]Graphique
    Par kasjacques dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 21/03/2006, 17h56
  5. [VBA-E]graphique excel dans un userform
    Par alex_95 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/03/2006, 09h03

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