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

Pointer une ligne relative dans une macro

PièceJointe

XLDnaute Nouveau
Pointer les lignes "sous-totaux" dans une macro

Bonjour à tous...

de retour parmi vous, je crois que je suis en train de devenir addict...

Voilà je n'ai pas trouvé en parcourant vos forums comment, dans une macro, pointer une plage relative (est-ce seulement le nom ? Dans mon exemple il s'agit de sous totaux...)

Voici mon code :
Code:
Sub GRAPH()
    Charts.Add
    ActiveChart.ChartType = xl3DColumnClustered
    ActiveChart.SetSourceData Source:=Sheets("Général").Range("H166:L166"), _
        PlotBy:=xlColumns
    ActiveChart.SeriesCollection(1).Name = "=Général!R5C8"
    ActiveChart.SeriesCollection(2).Name = "=Général!R5C9"
    ActiveChart.SeriesCollection(3).Name = "=Général!R5C10"
    ActiveChart.SeriesCollection(4).Name = "=Général!R5C11"
    ActiveChart.SeriesCollection(5).Name = "=Général!R5C12"
    ActiveChart.Location Where:=xlLocationAsNewSheet, Name:="Graphiques"
    With ActiveChart
        .HasTitle = True
        .ChartTitle.Characters.Text = "Répartion de l'offre de formation par domaines"
        .Axes(xlCategory).HasTitle = True
        .Axes(xlCategory).AxisTitle.Characters.Text = "Domaine"
        .Axes(xlSeries).HasTitle = False
        .Axes(xlValue).HasTitle = True
        .Axes(xlValue).AxisTitle.Characters.Text = "Nombre"
    End With
End Sub

Comment faire en sorte que "Range("H166:L166")" prenne une valeur relative ? En gros sil des données sont insérées ma ligne de réfernce n'est plus la 166...

Et y a t'il moyen de faire en sorte qu'il me sorte un graph pour tous mes sous totaux et pas seulement ceux de la ligne 166 colonnes H à F ?


Merci d'avance pour vos conseils.
 
Dernière édition:

pierrejean

XLDnaute Barbatruc
Re : Pointer une ligne relative dans une macro

Re

Dans la feuille Général en colonne A et sur les lignes (sous-total ), il y a bien les noms des Etablissements (et tous differents) ,sauf pour le total general ou la cellule est vide ?
Y a-t-il un graph au moins ?
 

PièceJointe

XLDnaute Nouveau
Re : Pointer une ligne relative dans une macro

Alors oui il y a un graph qui sort... mais un seul... et les noms d'établissement ne sont en colonne A que dans l'exemple "allégé" donné au départ... je joins la grille complète si ça a de l'importance... l'établissement est en F.
 

Pièces jointes

  • exemple bandeau colonne.xls
    16.5 KB · Affichages: 48

pierrejean

XLDnaute Barbatruc
Re : Pointer une ligne relative dans une macro

Re

Dans ce cas:

Code:
Sub GRAPH()
'
' GRAPH Macro
' Macro enregistrée le 14/10/2008 par utiliseur
num = 1
For n = 1 To Range("C65536").End(xlUp).Row
 If InStr(Sheets("Général").Range("C" & n).FormulaLocal, "SOUS.TOTAL") <> 0 Then
ligne = n
    Charts.Add
    ActiveChart.ChartType = xl3DColumnClustered
    ActiveChart.SetSourceData Source:=Sheets("Général").Range("H" & ligne & ":L" & ligne), PlotBy:=xlColumns
 [COLOR=blue]If Sheets("Général").Range("F" & n) = "" Then[/COLOR]
[COLOR=blue]   nom = "Total General"[/COLOR]
[COLOR=blue]Else[/COLOR]
[COLOR=blue]   nom = Sheets("Général").Range("F" & n)[/COLOR]
[COLOR=blue]End If[/COLOR]
    ActiveChart.Location Where:=xlLocationAsNewSheet, Name:=[COLOR=blue]nom[/COLOR]
num = num + 1
    With ActiveChart
        .HasTitle = True
        .ChartTitle.Characters.Text = "Répartion de l'offre de formation par domaines"
        .Axes(xlCategory).HasTitle = True
        .Axes(xlCategory).AxisTitle.Characters.Text = "Domaine"
        .Axes(xlSeries).HasTitle = False
        .Axes(xlValue).HasTitle = True
        .Axes(xlValue).AxisTitle.Characters.Text = "Nombre"
    End With
 End If
 
Next n
End Sub

Note: Si cela ne convient pas
ajoute quelques lignes (sans données confidentielles)
il est tout de même plus pratique de tester sur fichier !!
 
Dernière édition:

PièceJointe

XLDnaute Nouveau
Re : Pointer une ligne relative dans une macro

Merci bcp...ça marche presque !

Quelques onglets sont bien nommés mais pas tous...j'étudie ça et reviens ici pour faire part de mes découvertes et je mettrai des données s'il le faut, ce sera plus clair...
 

PièceJointe

XLDnaute Nouveau
Re : Pointer une ligne relative dans une macro

c'estlà que ça bloque désormais...

Code:
ActiveChart.Location Where:=xlLocationAsNewSheet, Name:=nom

comprend pas pourquoi ça marche avec les premiers puis ça cloque ensuite...
 

pierrejean

XLDnaute Barbatruc
Re : Pointer une ligne relative dans une macro

Re

Chez moi ceci fonctionne
J'ais modifié pour ne pas avoir de Graphique relatif a la ligne 7
Code:
For n = 8 To Sheets("Général").Range("C65536").End(xlUp).Row

Veiller a ne pas laisser la colonne F vide en face des Sous-totaux en colonne C et avoir une denomination differente a chaque fois
 

Pièces jointes

  • TEST Pierre Jean.zip
    17.5 KB · Affichages: 21
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…