Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Selection vba de colonnes non contigües pour graph

  • Initiateur de la discussion Initiateur de la discussion albert
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

A

albert

Guest
Bonjour à tous et à toutes, forumiens et forumiennes,
J’utilise des constantes pour faire un graphe :
Range('A10:A265,H10:H265').Select
dans la pièce jointe 🙁Sub graph1())
Et je cherche à sélectionner un nombre de lignes variables
Plage variable :
'-------------selection non contigüe
Dim Z1, Z2, MaPlageMultiZone As Range
Worksheets('Feuil1').Select
Range('A10').End(xlDown).Select
Zone1 = ActiveCell.Address
Selection.Offset(0, 7).Select
Zone2 = ActiveCell.Address
Set Z1 = Range('A10', Zone1)
Set Z2 = Range('H10', Zone2)
Set MaPlageMultiZone = Union(Z1, Z2)
ZoneSelection = MaPlageMultiZone.Select
'-------------
j’écris donc Range(ZoneSelection).Select à la place de
Range('A10:A265,H10:H265').Select

j’obtiens un graphiqe dans une feuille graphique, mais il ne se reproduit pas dans la Feuil1
(Sub graph2())

comment éviter ce bug ??

merci d’avance
[file name=graphtest.zip size=14154]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/graphtest.zip[/file]
 

Pièces jointes

Bonjour Albert et le forum,

Dans le module1, une macro qui crée un graphiqe dans la feuille 'Feuil1', en fonction de données 'variables' de cette même feuille.

J'espère que cela répond à ton problème ?

Cordialement

CBernardT [file name=graphtestV1.zip size=14456]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/graphtestV1.zip[/file]
 

Pièces jointes

Merci CbernardT, c’est une très belle application, qui place le graphe en Feuil1, contrairement à mon code.

Malheureusement, il y a cumul de toutes les colonnes, au lieu de les distinguer
ch.Chart.ChartWizard Source:=Sheets('Feuil1').Range('A10:A' & L, 'H10:H' & L)
c’est pour résoudre ce problème que j’avais utilisé
'-------------selection non contigüe
Dim Z1, Z2, MaPlageMultiZone As Range
Worksheets('Feuil1').Select
Range('A10').End(xlDown).Select
Zone1 = ActiveCell.Address
Selection.Offset(0, 7).Select
Zone2 = ActiveCell.Address
Set Z1 = Range('A10', Zone1)
Set Z2 = Range('H10', Zone2)
Set MaPlageMultiZone = Union(Z1, Z2)
ZoneSelection = MaPlageMultiZone.Select
'-------------

je vais m’inspirer de ton travail pour chercher une solution. Si je trouve, je donnerai la réponse
 
Eurêka !! j’ai trouvé avec set et union

Merci CBernardT de m’avoir mis sur la bonne piste
B)
Sub Graph1()
Sheets(1).Select
ActiveSheet.ChartObjects.Delete

'---------------------
Set a1 = Range(Cells(10, 1), Cells(20, 1))
Set a2 = Range(Cells(10, 8), Cells(20, 8))
u = Union(a1, a2).Address
'-------------

Charts.Add
ActiveChart.ChartType = xlLine
ActiveChart.SetSourceData Source:=Sheets('Feuil1').Range(u), PlotBy:=xlColumns
ActiveChart.SeriesCollection(1).Name = '=Feuil1!R8C1'
ActiveChart.Location Where:=xlLocationAsObject, Name:='Feuil1'
'------------------mise en forme---------------
ActiveChart.HasTitle = False
ActiveChart.Axes(xlCategory, xlPrimary).HasTitle = False
ActiveChart.Axes(xlValue, xlPrimary).HasTitle = False
ActiveSheet.ChartObjects(1).Activate
ActiveChart.Axes(xlValue).Select
ActiveChart.Axes(xlValue).MinimumScale = 95
ActiveChart.Axes(xlValue).MaximumScale = 102
ActiveChart.Axes(xlValue).MinorUnit = 0.01
ActiveChart.Axes(xlValue).MajorUnit = 1
ActiveChart.Axes(xlValue).Crosses = xlAutomatic
ActiveChart.Axes(xlValue).ReversePlotOrder = False
ActiveChart.Axes(xlValue).ScaleType = xlLinear
ActiveChart.Axes(xlValue).DisplayUnit = xlNone
Selection.TickLabels.Orientation = xlHorizontal
ActiveChart.Axes(xlCategory).Select
Selection.TickLabels.AutoScaleFont = True
Selection.TickLabels.Font.Size = 7
Selection.TickLabels.Alignment = xlCenter
Selection.TickLabels.Offset = 100
Selection.TickLabels.Orientation = xlUpward
End Sub

cordialement
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…