Pointer une ligne relative dans une macro

  • Initiateur de la discussion Initiateur de la discussion PièceJointe
  • 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 !

P

PièceJointe

Guest
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 modification par un modérateur:
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 ?
 
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

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:
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...
 
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...
 
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

- 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

B
Réponses
0
Affichages
1 K
Benzema
B
M
Réponses
6
Affichages
1 K
M
S
  • Question Question
Réponses
3
Affichages
3 K
shakapouet
S
G
Réponses
2
Affichages
880
Gisamark
G
N
Réponses
6
Affichages
1 K
N
V
Réponses
15
Affichages
2 K
V
F
  • Question Question
Réponses
1
Affichages
955
K
Réponses
1
Affichages
928
W
S
Réponses
2
Affichages
799
sébastien
S
F
Réponses
0
Affichages
1 K
F
Retour