Macro graphique profil topographique

Fermé
David - 9 déc. 2016 à 10:13
 david - 13 déc. 2016 à 17:13
Bonjour,

Je suis vraiment pas très bon en macro, je viens vers vous pour de l'aide....
Voila mon problème:
J ai des profils en travers définit par X et Z, et où chaque profil est repérés par un n°.
Je voudrais créer des graphique automatiques car j'ai beaucoup de profils à traiter.
Il fardait sélectionner les valeurs X et Z suivant la valeur du n°de profil (1 à 650), et le nombre de valeur de X et Z est variable d'un profil à l'autre.
J'ai trouver une macro qui fait partiellement le travail dont voici le code. si quelqu un peut m 'aider a le modifier pour que les graphique s'affiche les uns à côté des autres, ce serait top!!
par avance merci :)
David

Sub graphique()

Dim graph As Variant

Application.ScreenUpdating = False
On Error Resume Next
NomFeuille = ActiveSheet.Name
Sheets(NomFeuille).Select

Range("B2").Select
Selection.End(xlToRight).Select
Selection.End(xlDown).Select
Position = ActiveCell.Address
nblg = ActiveCell.Row
nbcol = ActiveCell.Column

Set graph = Sheets(NomFeuille).ChartObjects.Add(100, 50, 300, 200)
graph.Chart.ChartType = xlXYScatterLinesNoMarkers

n = 1
While (n = 1)
n = 0
entree = InputBox("Le graphe est-il en ligne ou en colonne ? Répondre L ou C.")

If entree = "l" Then entree = "L"
If entree = "c" Then entree = "C"

If entree = "L" Then
On Error Resume Next
graph.Chart.SetSourceData Source:=Sheets(NomFeuille).Range("A1", Position), PlotBy:= _
xlRows
Else

If entree = "C" Then
On Error Resume Next
graph.Chart.SetSourceData Source:=Sheets(NomFeuille).Range("B2", Position), PlotBy:= _
xlColumns

Else
MsgBox "Répondre L ou C", vbExclamation
n = 1
End If
End If
Wend

graph.Chart.Location Where:=xlLocationAsObject, Name:=NomFeuille
graph.Chart.HasLegend = False
graph.Chart.ApplyDataLabels Type:=xlDataLabelsShowNone, LegendKey:=False

With graph.Chart.ChartArea.Border
.Weight = 1
.LineStyle = 0
End With

With graph.Chart.PlotArea
.Border.Weight = xlThin
.Border.LineStyle = xlNone
.Interior.ColorIndex = xlNone
End With

graph.Chart.Axes(xlCategory).TickLabels.NumberFormat = "0"

With graph.Chart.Axes(xlValue)
.HasMajorGridlines = False
.HasMinorGridlines = False
.TickLabels.NumberFormat = "0"
End With

With Selection.Font
.Name = "Times New Roman"
.FontStyle = "Normal"
.Size = 8
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
.Background = xlAutomatic
End With

Range("B2").Select
Application.ScreenUpdating = True
End Sub





A voir également:

9 réponses

ccm81 Messages postés 10905 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 27 décembre 2024 2 428
9 déc. 2016 à 15:24
Bonjour

Plutôt que de créer un graphique pour chaque plage de données, il vaudrait mieux en finaliser un qui servira de modèle et la macro se contentera de le copier en changeant les plages de données
Peux tu envoyer un bout de ton fichier, sur cjoint.com et joindre le lien obtenu à ton prochain message. N'oublies pas d'y ajouter le graphique modèle et des exemples de résultat attendu

1) Tu vas dans https://www.cjoint.com/
2) Tu cliques sur [Parcourir] pour sélectionner ton fichier
3) Tu descends en bas de la page pour cliquer sur [Créer le lien Cjoint]
4) Au bout de quelques secondes la deuxième page s'affiche, avec le lien
en bleu souligné ; tu le sélectionnes et tu fais "Copier"
5) Tu reviens dans ta discussion sur CCM, et dans ton message de réponse
tu fais "Coller".

Cdlmnt
0
Bonjour CCM81,

voici le fichier (partiel en question)

http://www.cjoint.com/c/FLjoC2KY70P

Merci de ton intérêt pour ce problème insoluble de mon point de vue u_u
0
ccm81 Messages postés 10905 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 27 décembre 2024 2 428
Modifié par ccm81 le 9/12/2016 à 15:53
Ton graphique est il fini ?
En particulier il n'y a aucun titre ni pour le graphique, ni pour les axes
Et les graphiques tu les veux où, disposés comment ?
Pour l'axe vertical, veux tu que l’échelle soit la même pour tous ?
0
non le graphique est pas fini, je voulais le faire plus tard, en étant sur que la macro fonctionnait...
sur l'axe abscisse : X (m) , sur l axe des ordonnées Z (m), et le titre serait Profil en travers (valeur de la colonne A)
si l'échelle est la même c est mieux sinon c'est pas tres important...

David
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ccm81 Messages postés 10905 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 27 décembre 2024 2 428
9 déc. 2016 à 19:05
non le graphique est pas fini
finis le avec les titres et l'échelle commune et réponds à toutes les questions.
0
ccm81 Messages postés 10905 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 27 décembre 2024 2 428
10 déc. 2016 à 20:07
A tester
http://www.cjoint.com/c/FLkthlEBpIo

Cdlmnt
0
ccm81 Messages postés 10905 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 27 décembre 2024 2 428
11 déc. 2016 à 11:40
lien modifié
http://www.cjoint.com/c/FLlkNVvDP2o
0
merci bcp Ccm81, c est top !!!!
0
ccm81 Messages postés 10905 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 27 décembre 2024 2 428
12 déc. 2016 à 13:14
De rien

Si c'est fini, peux tu mettre le sujet à résolu (en dessous du titre de ton premier message)

Bonne journée
0
merci le sujet est résolu
0