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