Bonjour,
je dois captuerer un large zone pour la plage de données d'un graphe,
Fais fait une macro car j'ai un grand nombre de fichiers à traiter du même type.
chaque fichier d'entrée à traiter n' a pas obligatoirement la même dimension, ma
Bonjour,
je dois captuerer un large zone pour la plage de données d'un graphe,
Fais fait une macro car j'ai un grand nombre de fichiers à traiter du même type.
chaque fichier d'entrée à traiter n' a pas obligatoirement la même dimension, ma
Si tu mettais déjà la macro qu'ont puisse avoir une idée de ce que tu veux .![]()
désolé j ai eu une interruption brutale de mon pc pendant que j'écrivais mon PB.
Donc il s'agit de faire une macro pour construire des graphes à partir de données situées dans un fichier . dat que j'ouvre avec excel.
Il y a une grande quantité de fichiers à traiter, donc je ne veux pas me planter dans ma macro.
outre les pb d'encapsulage pour rendre + pratique le traitement, j'aimerai pouvoir résoudre des palnatages du code qui viennent de la façon dont je code la capture de la plage de données dans la Variable(Range) zone_graph2.
et l'aide de microsoft ne me donne pas beaucoup d'explication.
ça plante à la ligne :
set zone_graph2 = ...... etc
j'aimerai mettre le fichier avec sa macro compléte en PJ mais je ne sais pas comment on fait.
j'ai compris pour le code mais pas pour une piéce jointe.
Patnel
bon au moins je mets le code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102 Option Explicit Sub create() Dim C_ori, C_Dest As Range Dim zone_graph, zone_graph2 As Range Dim LeGraph As Chart Dim ligne, i, j, k As Long Dim ori, dest As String Dim fiche As String Dim feuil As Worksheet 'recuperer le nom de la feuille For Each feuil In Worksheets fiche = feuil.Name Next feuil Worksheets(fiche).Range("A15").Value = "NULL" ori = Worksheets(fiche).Range("F7").Value dest = "Axe X " & ori & " gRMS" Worksheets(fiche).Range("B15").Value = dest ori = Worksheets(fiche).Range("F8").Value dest = "Axe Y " & ori & " gRMS" Worksheets(fiche).Range("C15").Value = dest ori = Worksheets(fiche).Range("F9").Value dest = "Axe Z " & ori & " gRMS" Worksheets(fiche).Range("D15").Value = dest ' récuperer la zone de valeurs pour le graphique ' compter le nombre de lignes Set zone_graph = Worksheets(fiche).Rows(1) ligne = 15 Do While (zone_graph.Offset(ligne).Columns(1).Value <> "") ligne = ligne + 1 Loop Set zone_graph2 = Worksheets(fiche).Range(Cells(15, 1), Cells(ligne - 1, 4)) 'Worksheets(fiche).Range("A15").Value = "" Set LeGraph = ThisWorkbook.Charts.Add Set LeGraph = LeGraph.Location(Where:=xlLocationAsNewSheet) With LeGraph .SetSourceData Source:=zone_graph2 .ChartType = xlXYScatterLinesNoMarkers .HasTitle = True .ChartTitle.Characters.Text = fiche .Axes(xlCategory, xlPrimary).HasTitle = True .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Fréquences en Hz" .Axes(xlValue, xlPrimary).HasTitle = True .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "niveau en g²RMS/Hz" End With LeGraph.ApplyDataLabels Type:=xlDataLabelsShowNone, LegendKey:=False 'grille d'échelle primaire With LeGraph.Axes(xlCategory) .HasMajorGridlines = True .HasMinorGridlines = True End With 'grille d'échelle secondaire With LeGraph.Axes(xlValue) .HasMajorGridlines = True .HasMinorGridlines = True End With With LeGraph.Axes(xlValue) .MinimumScaleIsAuto = True .MaximumScaleIsAuto = True .MinorUnitIsAuto = True .MajorUnitIsAuto = True .Crosses = xlMinimum .ReversePlotOrder = False .ScaleType = xlLogarithmic .DisplayUnit = xlNone End With With LeGraph.Axes(xlValue) .MinimumScaleIsAuto = True .MaximumScaleIsAuto = True .MinorUnitIsAuto = True .MajorUnitIsAuto = True .Crosses = xlMinimum .ReversePlotOrder = False .ScaleType = xlLogarithmic .DisplayUnit = xlNone End With End Sub
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager