Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
680to684
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
680to684
680to684
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Problem mit einer String ...

Problem mit einer String ...
12.10.2005 14:59:03
Florian
Hallo Profis,
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 ...

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
nicht mit dem String
12.10.2005 15:33:36
MichaV
Hallo,
wie kommst Du darauf, daß dawas abgeschnitten wird?
bei Anzahl=200 ist kurve1==(Messdaten!R4C2,Messdaten!R15C2,Messdaten!R26C2,Messdaten!R37C2,Messdaten!R48C2,Messdaten!R59C2,Messdaten!R70C2,Messdaten!R81C2,Messdaten!R92C2,Messdaten!R103C2,Messdaten!R114C2,Messdaten!R125C2,Messdaten!R136C2,Messdaten!R147C2,Messdaten!R158C2,Messdaten!R169C2,Messdaten!R180C2,Messdaten!R191C2,Messdaten!R202C2,Messdaten!R213C2,Messdaten!R224C2,Messdaten!R235C2,Messdaten!R246C2,Messdaten!R257C2,Messdaten!R268C2,Messdaten!R279C2,Messdaten!R290C2,Messdaten!R301C2,Messdaten!R312C2,Messdaten!R323C2,Messdaten!R334C2,Messdaten!R345C2,Messdaten!R356C2,Messdaten!R367C2,Messdaten!R378C2,Messdaten!R389C2,Messdaten!R400C2,Messdaten!R411C2,Messdaten!R422C2,Messdaten!R433C2,Messdaten!R444C2,Messdaten!R455C2,Messdaten!R466C2,Messdaten!R477C2,Messdaten!R488C2,Messdaten!R499C2,Messdaten!R510C2,Messdaten!R521C2,Messdaten!R532C2,Messdaten!R543C2,Messdaten!R554C2,Messdaten!R565C2,Messdaten!R576C2,Messdaten!R587C2,Messdaten!R598C2,Messdaten!R609C2,Messdaten!R620C2,Messdaten!R631C2,Messdaten!R642C2,Messdaten!R653C2,Messdaten!R
664C2,Messdaten!R675C2,Messdaten!R686C2,Messdaten!R697C2,Messdaten!R708C2,Messdaten!R719C2,Messdaten!R730C2,Messdaten!R741C2,Messdaten!R752C2,Messdaten!R763C2,Messdaten!R774C2,Messdaten!R785C2,Messdaten!R796C2,Messdaten!R807C2,Messdaten!R818C2,Messdaten!R829C2,Messdaten!R840C2,Messdaten!R851C2,Messdaten!R862C2,Messdaten!R873C2,Messdaten!R884C2,Messdaten!R895C2,Messdaten!R906C2,Messdaten!R917C2,Messdaten!R928C2,Messdaten!R939C2,Messdaten!R950C2,Messdaten!R961C2,Messdaten!R972C2,Messdaten!R983C2,Messdaten!R994C2,Messdaten!R1005C2,Messdaten!R1016C2,Messdaten!R1027C2,Messdaten!R1038C2,Messdaten!R1049C2,Messdaten!R1060C2,Messdaten!R1071C2,Messdaten!R1082C2,Messdaten!R1093C2,Messdaten!R1104C2,Messdaten!R1115C2,Messdaten!R1126C2,Messdaten!R1137C2,Messdaten!R1148C2,Messdaten!R1159C2,Messdaten!R1170C2,Messdaten!R1181C2,Messdaten!R1192C2,Messdaten!R1203C2,Messdaten!R1214C2,Messdaten!R1225C2,Messdaten!R1236C2,Messdaten!R1247C2,Messdaten!R1258C2,Messdaten!R1269C2,Messdaten!R1280C2,Messdaten!R1291C2,Messdaten!R1302C2,Mes
sdaten!R1313C2,Messdaten!R1324C2,Messdaten!R1335C2,Messdaten!R1346C2,Messdaten!R1357C2,Messdaten!R1368C2,Messdaten!R1379C2,Messdaten!R1390C2,Messdaten!R1401C2,Messdaten!R1412C2,Messdaten!R1423C2,Messdaten!R1434C2,Messdaten!R1445C2,Messdaten!R1456C2,Messdaten!R1467C2,Messdaten!R1478C2,Messdaten!R1489C2,Messdaten!R1500C2,Messdaten!R1511C2,Messdaten!R1522C2,Messdaten!R1533C2,Messdaten!R1544C2,Messdaten!R1555C2,Messdaten!R1566C2,Messdaten!R1577C2,Messdaten!R1588C2,Messdaten!R1599C2,Messdaten!R1610C2,Messdaten!R1621C2,Messdaten!R1632C2,Messdaten!R1643C2,Messdaten!R1654C2,Messdaten!R1665C2,Messdaten!R1676C2,Messdaten!R1687C2,Messdaten!R1698C2,Messdaten!R1709C2,Messdaten!R1720C2,Messdaten!R1731C2,Messdaten!R1742C2,Messdaten!R1753C2,Messdaten!R1764C2,Messdaten!R1775C2,Messdaten!R1786C2,Messdaten!R1797C2,Messdaten!R1808C2,Messdaten!R1819C2,Messdaten!R1830C2,Messdaten!R1841C2,Messdaten!R1852C2,Messdaten!R1863C2,Messdaten!R1874C2,Messdaten!R1885C2,Messdaten!R1896C2,Messdaten!R1907C2,Messdaten!R1918C2,Messdaten!R1929C2,
Messdaten!R1940C2,Messdaten!R1951C2,Messdaten!R1962C2,Messdaten!R1973C2,Messdaten!R1984C2,Messdaten!R1995C2,Messdaten!R2006C2,Messdaten!R2017C2,Messdaten!R2028C2,Messdaten!R2039C2,Messdaten!R2050C2,Messdaten!R2061C2,Messdaten!R2072C2,Messdaten!R2083C2,Messdaten!R2094C2,Messdaten!R2105C2,Messdaten!R2116C2,Messdaten!R2127C2,Messdaten!R2138C2,Messdaten!R2149C2,Messdaten!R2160C2,Messdaten!R2171C2,Messdaten!R2182C2,Messdaten!R2193C2)
...Dein String ist also okay.
Bist Du Dir sicher, daß die Zuweisung zum Chart klappt? Ich hab da keine Ahnung, drum lass ich die Frage offen.
Gruss- Micha
PS: Rückmeldung wäre nett.
Anzeige
AW: Problem mit einer String ...
12.10.2005 15:57:37
Flowboy
Hi Micha,
thx für die schnelle Antwort. Ich komme darauf weil, ich die Variable kurve1 im Debugmodus beobachte. Dort wächst sie mit jedem Schleifendurchlauf (bei anzahl größer 15) auch dem maximalen String, und der sieht so aus bei mir:
"=(Messdaten!R4C2,Messdaten!R15C2,Messdaten!R26C2,Messdaten!R37C2,Messdaten!R48C2,Messdaten!R59C2,Messdaten!R70C2,Messdaten!R81C2,Messdaten!R92C2,Messdaten!R103C2,Messdaten!R114C2,Messdaten!R125C2,Messdaten!R136C2,Messdaten!R147C2,Messdaten!R158C2,Messda"
und wenn dies zugewiesen wird, erzeugt es eine Fehlermeldung, weil in den letzten paar Zeilen keine ! und ) mehr steht. Ich habe auch gerade noch probiert mit dem Befehlen
Sheets("Messdaten").Select
Cells(8, 1) = kurve1
davor die Variable in ein Feld zu schreiben, da bringt er mir aber eine Fehlermeldung zu wenig Speicher vorhanden. Komisch dass es bei dir funktioniert, woher hast du den Wert? Auch in Debugmodus unter lokal den Wert kopiert? Die Zuweisung zum Chart klappt definitiv, aber wie gesagt nur wenn Anzahl maximal 15 ist ab 16 gibs nen Laufzeitfehler *grumel* . Trotzdem Danke für deine überaus schnelle Antwort.
Gruß
Flo

Anzeige
AW: Problem mit einer String ...
12.10.2005 16:00:18
MichaV
Hallo,
damit hab ich getestet. Guck im Direktfenster, da wird Dein String ausgegeben.


Option Explicit
Private Sub CommandButton2_Click()
Dim kurve1 As String        'Y- Datenwerte für Diagramm "Power 1"
Dim i%
Const anzahl = 200           '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
        Debug.Print i; Tab; kurve1 'bis zu i = 15 und dann wird nur
    Next i                                                                    'noch ",Messda" statt ",Messdaten!R169C2"
'Sheets("Messdaten").Select
'Range("B4").Select
End Sub



Gruss- Micha
PS: Rückmeldung wäre nett.
Anzeige
AW: Problem mit einer String ...
12.10.2005 16:04:40
Flowboy
hi Micha,
thx für die schnelle Antwort. Ich komme darauf weil, ich die Variable kurve1 im Debugmodus beobachte. Dort wächst sie (für alle anzahl größer 15) mit jedem Schleifendurchlauf auch dem maximalen String, und der sieht so aus bei mir:
"=(Messdaten!R4C2,Messdaten!R15C2,Messdaten!R26C2,Messdaten!R37C2,Messdaten!R48C2,Messdaten!R59C2,Messdaten!R70C2,Messdaten!R81C2,Messdaten!R92C2,Messdaten!R103C2,Messdaten!R114C2,Messdaten!R125C2,Messdaten!R136C2,Messdaten!R147C2,Messdaten!R158C2,Messda"
und wenn dies zugewiesen wird, erzeugt es eine Fehlermeldung, weil in den Letzten paar Zeilen keine ! und ) mehr steht. Ich habe auch gerade noch probiert mit dem Befehlen
Sheets("Messdaten").Select
Cells(8, 1) = kurve1
davor die Variable in ein Feld zu schreiben, da bringt er mir aber eine Fehlermeldung zu wenig Speicher vorhanden. Komisch dass es bei dir funktioniert, woher hast du den Wert? auch in debugmodus unter lokal den wert kopiert? Die Zuweisung zum chart klappt definitiv, aber wie gesagt nur wenn Anzahl maximal 15 ist ab 16 gibs nen Laufzeitfehler *grumel* . Trotzdem Danke für deine überaus schnelle Antwort.
Gruß
Flo

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige