##// END OF EJS Templates
- No smoothing for diagrams
LabVIEW -
r18:19
parent child Browse files
Show More
@@ -1,217 +1,221
1 1 Sub AktualisiereXYDiagrammWiderstand()
2 2 Dim datenWs As Worksheet
3 3 Dim diagrammWs As Worksheet
4 4 Dim chartObj As ChartObject
5 5 Dim diagramm As Chart
6 6 Dim xRange As Range
7 7 Dim yRange As Range
8 8 Dim letzteSpalte As Long
9 9 Dim letzteZeile As Long
10 10 Dim i As Long
11 11 ' Arbeitsblätter definieren
12 12 Set datenWs = ThisWorkbook.Worksheets(1) ' Blatt mit den Daten
13 13 Set diagrammWs = ThisWorkbook.Worksheets(3) ' Blatt mit dem Diagramm
14 14 ' Diagramm definieren
15 15 Set chartObj = diagrammWs.ChartObjects(1) ' Diagrammname anpassen
16 16 Set diagramm = chartObj.Chart
17 17 ' Letzte Zeile und Spalte der Daten finden
18 18 letzteZeile = datenWs.Cells(datenWs.Rows.Count, 1).End(xlUp).Row ' X-Werte in Spalte A
19 19 letzteSpalte = datenWs.Cells(3, datenWs.Columns.Count).End(xlToLeft).Column ' Y-Werte ab Spalte B
20 20 ' MsgBox letzteZeile, vbInformation
21 21 ' MsgBox letzteSpalte, vbInformation
22 22 ' X-Werte-Bereich definieren (fix in Spalte A, ab Zeile 3)
23 23 Set xRange = datenWs.Range(datenWs.Cells(3, 1), datenWs.Cells(letzteZeile, 1)) ' Daten beginnen ab Zeile 3
24 24 ' Bestehende Datenreihen im Diagramm entfernen
25 25 Do While diagramm.SeriesCollection.Count > 0
26 26 diagramm.SeriesCollection(1).Delete
27 27 Loop
28 28 ' Neue Datenreihen hinzufügen
29 29 For i = 2 To letzteSpalte ' Y-Werte beginnen in Spalte B
30 30 Set yRange = datenWs.Range(datenWs.Cells(3, i), datenWs.Cells(letzteZeile, i))
31 31 ' Neue Datenreihe hinzufügen
32 32 With diagramm.SeriesCollection.NewSeries
33 33 .Name = datenWs.Cells(2, i).Value ' Name der Reihe aus der Kopfzeile (Zeile 1)
34 34 .XValues = xRange
35 35 .Values = yRange
36 .Smooth = False ' Glätten ausschalten
36 37 End With
37 38 Next i
38 39 End Sub
39 40
40 41 Sub AktualisiereXYDiagrammKraft()
41 42 Dim datenWs As Worksheet
42 43 Dim diagrammWs As Worksheet
43 44 Dim chartObj As ChartObject
44 45 Dim diagramm As Chart
45 46 Dim xRange As Range
46 47 Dim yRange As Range
47 48 Dim letzteSpalte As Long
48 49 Dim letzteZeile As Long
49 50 Dim i As Long
50 51 ' Arbeitsblätter definieren
51 52 Set datenWs = ThisWorkbook.Worksheets(2) ' Blatt mit den Daten
52 53 Set diagrammWs = ThisWorkbook.Worksheets(4) ' Blatt mit dem Diagramm
53 54 ' Diagramm definieren
54 55 Set chartObj = diagrammWs.ChartObjects(1) ' Diagrammname anpassen
55 56 Set diagramm = chartObj.Chart
56 57 ' Letzte Zeile und Spalte der Daten finden
57 58 letzteZeile = datenWs.Cells(datenWs.Rows.Count, 1).End(xlUp).Row ' X-Werte in Spalte A
58 59 letzteSpalte = datenWs.Cells(3, datenWs.Columns.Count).End(xlToLeft).Column ' Y-Werte ab Spalte B
59 60 'MsgBox letzteZeile, vbInformation
60 61 'MsgBox letzteSpalte, vbInformation
61 62 ' X-Werte-Bereich definieren (fix in Spalte A, ab Zeile 3)
62 63 Set xRange = datenWs.Range(datenWs.Cells(3, 1), datenWs.Cells(letzteZeile, 1)) ' Daten beginnen ab Zeile 3
63 64 ' Bestehende Datenreihen im Diagramm entfernen
64 65 Do While diagramm.SeriesCollection.Count > 0
65 66 diagramm.SeriesCollection(1).Delete
66 67 Loop
67 68 ' Neue Datenreihen hinzufügen
68 69 For i = 2 To letzteSpalte ' Y-Werte beginnen in Spalte B
69 70 Set yRange = datenWs.Range(datenWs.Cells(3, i), datenWs.Cells(letzteZeile, i))
70 71 ' Neue Datenreihe hinzufügen
71 72 With diagramm.SeriesCollection.NewSeries
72 73 .Name = datenWs.Cells(2, i).Value ' Name der Reihe aus der Kopfzeile (Zeile 1)
73 74 .XValues = xRange
74 75 .Values = yRange
76 .Smooth = False ' Glätten ausschalten
75 77 End With
76 78 Next i
77 79 End Sub
78 80
79 81 Sub AktualisiereXYDiagrammInkrementWiderstand()
80 82 Dim wsAktuell As Worksheet
81 83 Dim ws As Worksheet
82 84 Dim chartObj As ChartObject
83 85 Dim diagramm As Chart
84 86 Dim letzteZeile As Long
85 87 Dim letzteSpalte As Long
86 88 Dim datenBereichX As Range
87 89 Dim datenBereichY1 As Range
88 90 Dim datenReihe As Series
89 91 Dim diagrammTitel As String
90 92 Dim startZeile As Long
91 93 Dim blockAnzahl As Long
92 94 Dim blockStartSpalte As Long
93 95 Dim blockEndSpalte As Long
94 96 Dim blockIndex As Integer
95 97
96 98 ' Arbeitsblatt "Widerstandsdiagramm" festlegen
97 99 Set wsAktuell = ThisWorkbook.Worksheets("Widerstandsdiagramm")
98 100
99 101 ' Diagramm auf "Widerstandsdiagramm" suchen
100 102 If wsAktuell.ChartObjects.Count = 0 Then
101 103 MsgBox "Kein Diagramm auf 'Widerstandsdiagramm' gefunden.", vbExclamation
102 104 Exit Sub
103 105 End If
104 106
105 107 Set chartObj = wsAktuell.ChartObjects(1)
106 108 Set diagramm = chartObj.Chart
107 109
108 110 ' Vorhandene Datenreihen löschen
109 111 Do While diagramm.SeriesCollection.Count > 0
110 112 diagramm.SeriesCollection(1).Delete
111 113 Loop
112 114
113 115 ' Alle Blätter vor "Widerstandsdiagramm" durchlaufen
114 116 For Each ws In ThisWorkbook.Worksheets
115 117 If ws.Index < wsAktuell.Index Then
116 118 ' Letzte Zeile im Blatt ermitteln
117 119 letzteZeile = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
118 120
119 121 ' Prüfen, ob relevante Daten vorhanden sind
120 122 If letzteZeile >= 3 Then
121 123 ' Startzeile und Anzahl der Datenblöcke definieren
122 124 startZeile = 3
123 125 blockStartSpalte = 1 ' Erste Spalte für x
124 126 blockEndSpalte = 3 ' Spalten x, y1, y2
125 127 blockAnzahl = ws.Cells(2, ws.Columns.Count).End(xlToLeft).Column / 3 ' Anzahl Blöcke
126 128
127 129 ' Datenblöcke durchlaufen
128 130 For blockIndex = 0 To blockAnzahl - 1
129 131 ' X-Werte und Y1-Werte für den aktuellen Block definieren
130 132 With ws
131 133 Set datenBereichX = .Range(.Cells(startZeile, blockStartSpalte + blockIndex * 3), _
132 134 .Cells(letzteZeile, blockStartSpalte + blockIndex * 3)) ' Spalte X
133 135 Set datenBereichY1 = .Range(.Cells(startZeile, blockStartSpalte + blockIndex * 3 + 1), _
134 136 .Cells(letzteZeile, blockStartSpalte + blockIndex * 3 + 1)) ' Spalte Y1
135 137
136 138 ' Neue Datenreihe hinzufügen
137 139 Set datenReihe = diagramm.SeriesCollection.NewSeries
138 140 datenReihe.Values = datenBereichY1
139 141 datenReihe.XValues = datenBereichX
140 142 datenReihe.Name = ws.Name & " - Position " & (blockIndex + 1)
143 datenReihe.Smooth = False
141 144 End With
142 145 Next blockIndex
143 146 End If
144 147 End If
145 148 Next ws
146 149 End Sub
147 150
148 151 Sub AktualisiereXYDiagrammInkrementKraft()
149 152 Dim wsWiderstand As Worksheet
150 153 Dim wsKraft As Worksheet
151 154 Dim ws As Worksheet
152 155 Dim chartObj As ChartObject
153 156 Dim diagramm As Chart
154 157 Dim letzteZeile As Long
155 158 Dim datenBereichX As Range
156 159 Dim datenBereichY2 As Range
157 160 Dim datenReihe As Series
158 161 Dim diagrammTitel As String
159 162 Dim startZeile As Long
160 163 Dim blockAnzahl As Long
161 164 Dim blockStartSpalte As Long
162 165 Dim blockEndSpalte As Long
163 166 Dim blockIndex As Integer
164 167
165 168 ' Arbeitsblätter "Widerstandsdiagramm" und "Kraftdiagramm" festlegen
166 169 Set wsWiderstand = ThisWorkbook.Worksheets("Widerstandsdiagramm")
167 170 Set wsKraft = ThisWorkbook.Worksheets("Kraftdiagramm")
168 171
169 172 ' Diagramm auf "Kraftdiagramm" suchen
170 173 If wsKraft.ChartObjects.Count = 0 Then
171 174 MsgBox "Kein Diagramm auf 'Kraftdiagramm' gefunden.", vbExclamation
172 175 Exit Sub
173 176 End If
174 177
175 178 Set chartObj = wsKraft.ChartObjects(1)
176 179 Set diagramm = chartObj.Chart
177 180
178 181 ' Vorhandene Datenreihen löschen
179 182 Do While diagramm.SeriesCollection.Count > 0
180 183 diagramm.SeriesCollection(1).Delete
181 184 Loop
182 185
183 186 ' Alle Blätter vor "Widerstandsdiagramm" durchlaufen
184 187 For Each ws In ThisWorkbook.Worksheets
185 188 If ws.Index < wsWiderstand.Index Then
186 189 ' Letzte Zeile im Blatt ermitteln
187 190 letzteZeile = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
188 191
189 192 ' Prüfen, ob relevante Daten vorhanden sind
190 193 If letzteZeile >= 3 Then
191 194 ' Startzeile und Anzahl der Datenblöcke definieren
192 195 startZeile = 3
193 196 blockStartSpalte = 1 ' Erste Spalte für x
194 197 blockEndSpalte = 3 ' Spalten x, y1, y2
195 198 blockAnzahl = ws.Cells(2, ws.Columns.Count).End(xlToLeft).Column / 3 ' Anzahl Blöcke
196 199
197 200 ' Datenblöcke durchlaufen
198 201 For blockIndex = 0 To blockAnzahl - 1
199 202 ' X-Werte und Y2-Werte für den aktuellen Block definieren
200 203 With ws
201 204 Set datenBereichX = .Range(.Cells(startZeile, blockStartSpalte + blockIndex * 3), _
202 205 .Cells(letzteZeile, blockStartSpalte + blockIndex * 3)) ' Spalte X
203 206 Set datenBereichY2 = .Range(.Cells(startZeile, blockStartSpalte + blockIndex * 3 + 2), _
204 207 .Cells(letzteZeile, blockStartSpalte + blockIndex * 3 + 2)) ' Spalte Y2
205 208
206 209 ' Neue Datenreihe hinzufügen
207 210 Set datenReihe = diagramm.SeriesCollection.NewSeries
208 211 datenReihe.Values = datenBereichY2
209 212 datenReihe.XValues = datenBereichX
210 213 datenReihe.Name = ws.Name & " - Position " & (blockIndex + 1)
214 datenReihe.Smooth = False
211 215 End With
212 216 Next blockIndex
213 217 End If
214 218 End If
215 219 Next ws
216 220 End Sub
217 221
1 NO CONTENT: modified file
General Comments 0
You need to be logged in to leave comments. Login now