Question Modification du poids des lignes de la série de données dans un graphique Excel (plusieurs en même temps)


Existe-t-il un moyen de modifier le poids de toutes les lignes à la fois sur un graphique en courbes Excel?

J'ai un graphique avec environ 50 séries de données, et c'est trop pour toutes les parcourir et changer les poids individuellement, et il est difficile de voir les données si les lignes étaient plus fines, ce serait un peu plus facile. Je ne vois pas comment les sélectionner, ce qui me semble un peu affreux.

Edit: Je l'ai finalement fait fonctionner avec le code suivant (après avoir appris un peu de VB). Je ne semble pas aider beaucoup à la lisibilité du graphique! Chris m'a aidé à régler le problème, alors je vais lui donner le tic-tac.

Sub onepxlines()
        With Selection
            MsgBox ("Selection: " & TypeName(Selection))
            If TypeName(Selection) = "ChartArea" Then
                Dim area As ChartArea
                Set area = Selection

                MsgBox ("Area parent: " & TypeName(area.Parent))

                If TypeName(area.Parent) = "Chart" Then
                    Dim chart As chart
                    Set chart = area.Parent
                    Dim srs As Series

                    For Each srs In chart.SeriesCollection
                        srs.Format.Line.Weight = 1.5
                    Next
                End If
            End If
        End With
End Sub

4
2017-11-15 23:02


origine




Réponses:


Probablement plus facile d'écrire une macro rapide, quelque chose comme

Sub SetWeights()
    Dim srs As Series
    For Each srs In ActiveSheet.ChartObjects("Chart 1").Chart.SeriesCollection
        srs.Format.Line.Weight = 0.75
    Next
End Sub

5
2017-11-16 05:31



Bravo, je vais essayer ça :) - Chris Dennett


Ceci est une version plus compatible de copier-coller de la réponse de Chris:

Sub SetWeights()
    Dim srs As Series
    For Each srs In ActiveChart.SeriesCollection
        srs.Format.Line.Weight = 0.25
    Next
End Sub

Sélectionnez simplement le graphique et exécutez la macro.


3
2017-12-12 19:14





Amélioration: créez une variable VB (LineWT) qui pointe vers une cellule de la feuille de calcul. Puis au lieu de "Format.Line.Weight = 0.25", changez 0.25 en LineWT. Vous pouvez ensuite modifier l'épaisseur de la ligne en la modifiant sur une feuille de calcul et en cliquant sur le bouton Macro. Vous pouvez utiliser un code similaire pour définir les noms des axes X / Y avec des pointeurs sur la feuille de calcul.


3
2018-04-05 21:12





Cela a parfaitement fonctionné pour moi. J'ai utilisé ce code pour le faire modifier toutes les lignes de tous les graphiques sur toutes les feuilles d'un classeur

Sub ChangeLineType()

'This macro will print all embedded charts in the active workbook
'
    Application.ScreenUpdating = False
    Dim Sht As Object
    Dim Cht As ChartObject
    For Each Sht In ActiveWorkbook.Sheets
        For Each Cht In Sht.ChartObjects
            Cht.Activate
            ActiveChart.ChartArea.Select
            'ActiveWindow.SelectedSheets.PrintOut
                Dim srs As Series
                For Each srs In ActiveChart.SeriesCollection
                srs.Format.Line.Weight = 0.25
                Next
        Next
    Next
End Sub

2
2017-09-04 18:14





Je ne pense pas que vous pouvez sélectionner plusieurs lignes. Le moyen le plus simple est probablement d'en changer un, puis de sélectionner chacun d'eux à l'aide de Ctrl-Y pour parcourir le changement de poids de ligne.


0
2017-11-16 00:15



Il doit y avoir quelque chose de mieux que cela. Peut-être quelque chose comme un style de graphique personnalisé? - Chris Dennett


Ce code modifie la largeur de ligne de tous les graphiques de la feuille de calcul active. y compris les feuilles de graphique:

' Sets the line thickness for all charts in the active spreadsheet.
Sub ChangeLineType()
    Dim Cht As Chart
    Dim Chts As New Collection
    Dim Sht As Object   ' Can be Chart or WorkSheet

    For Each Sht In ActiveWorkbook.Sheets
        If TypeName(Sht) = "Chart" Then
            Chts.Add Sht
        Else
            For Each Cht In Sht.ChartObjects
                Chts.Add Cht
            Next
        End If
    Next

    Application.ScreenUpdating = False
    For Each Cht In Chts
        Dim Srs As Series
        For Each Srs In Cht.SeriesCollection
            Srs.Format.Line.Weight = 0.25
        Next Srs
    Next Cht
End Sub

(Adapté de la réponse de David Markman.)


0
2017-11-14 01:47





Dans l'onglet Accueil, section Police, sélectionnez la liste déroulante Bordures. Choisissez votre style ou couleur de ligne requis. Un crayon apparaîtra. Au lieu d'utiliser le crayon pour cliquer sur chaque ligne que vous souhaitez modifier, accédez au coin de la grille de cellules à modifier et maintenez la touche CNTRL enfoncée. Faites glisser le crayon sur la grille de cellules requise et tout changera pour le style ou la couleur que vous avez sélectionné.


0
2018-05-19 09:01