Macro graphique profil topographique
David
-
david -
david -
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
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:
- Macro graphique profil topographique
- Voir qui regarde mon profil facebook - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Qui regarde mon profil instagram - Guide
- Changer carte graphique - Guide
- Graphique sparkline - Guide
9 réponses
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
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
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
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
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 ?
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 ?
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
non le graphique est pas fini
finis le avec les titres et l'échelle commune et réponds à toutes les questions.
finis le avec les titres et l'échelle commune et réponds à toutes les questions.