Ich hab mir ein kleines Programm geschrieben welches x und Y Werte per Knopfdruck einem x-y-Diagramm übermittelt. Dabei ist die Anzahl der Datensätze variabel (wird über die Const. anzahl eingestellt.). Hab gerade mein Programm "entschlackt" d.h. auf das wesentliche reduziert und mit Kommentaren versehen, dass Ihr es besser verstehen könnt.
hier kommt der Salat:
Private Sub CommandButton2_Click()
Dim kurve1 As String 'Y- Datenwerte für Diagramm "Power 1"
Const anzahl = 16 'Variable, welche vorne im Programm geschrieben wird mit anzahl = 15 gehts und mit anzahl = 16 gehts nicht mehr !!!
Sheets("Power 1").Select 'Datenblatt mit x-y-Chart
For i = 0 To anzahl
If i = 0 Then ' Zum schreiben vom Anfang, siehe nächstes Komentar
kurve1 = Chr(61) & Chr(40) & "Messdaten!R4C2" 'Der Wert von kurve1 = "=(Messdaten!R4C2"
ElseIf i = anzahl Then 'Für den letzen Durchgang : l=20,
kurve1 = kurve1 & Chr(41) 'Im letzten Durchgang wird die Klammer ")" angehängt
ActiveChart.ChartArea.Select 'Is glaub ich nicht nötig, habs einfach aus Verzweiflung gemacht
ActiveChart.SeriesCollection(1).Values = kurve1 'Zuweisen des Wertes, hier passierts,
'Fehlermeldung 1004
Else
kurve1 = kurve1 & Chr(44) & "Messdaten!R" & (i * 11 + 4) & "C2" 'Zwischenschritte mit den Werten (11*i)+4
End If 'bis zu i = 15 und dann wird nur
Next i 'noch ",Messda" statt ",Messdaten!R169C2"
Sheets("Messdaten").Select
Range("B4").Select
End Sub
Der Schleifendurchlauf funktioniert bis zu i = 15, nach dem 16 mal hängt er keinen vollständigen String mehr hin, d.h. statt ",Messdaten!R169C2" wird nur noch ",Messda" angehängt, was dann natürlich später eine Fehlermeldung produziert, wenn er die Werte per SeriesCollection(1).Values = kurve1 zuweisen möchte.
Ps: ich fress gleich den PC auf ...