Graph erzeugen. X-Werte stimmen nicht

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
UserForm TextBox
Bild

Betrifft: Graph erzeugen. X-Werte stimmen nicht
von: Tobias
Geschrieben am: 23.10.2015 21:14:17

Hey Leute,
ich habe eine Userform erstellt, mit dessen Hilfe der Benutzer verschiedene Graphen erzeugen kann. Dabei kann er selber den Wertebereich VON BIS bestimmen. Leider werden die x-Werte in den Graphen nicht richtig übernommen.
Der User wählt x1=-100 (Anfang des Wertebereichs)
Der User wählt x2=100 (Ende des Wertebereichs)
Es wird der Durchschnitt d errechnet d=(Abs(x1)+Abs(x2))/n
Wobei n=1000 ist (Anzahl der Punkte)
x(1)=x1
x(n)=x2
For i=2 To n-1
x(i)=x(i-1)+d
Next i
Wobei x eine Variable darstellt. Nun sage ich, dass XValues=x ist. Aber jetzt übernimmt der Graph von x=1 bis x=1000. Also die Anzahl der Punkte.
Dabei ist beigefügt.
http://en.file-upload.net/download-10992164/Userform.xlsm.html
Finde leider den Fehler nicht. Wäre sehr dankbar über Hilfe.
Tobi

Bild

Betrifft: AW: Graph erzeugen. X-Werte stimmen nicht
von: Daniel
Geschrieben am: 23.10.2015 22:19:39
Hi
das problem ist folgendes:
ein echtes x-y-Punkte-Diagramm kann Excel nur erstellen, wenn alle x-Werte Zahlen sind.
ist jedoch ein x-Wert ein Text, kann Excel die Zuordnung nicht mehr vornehmen.
Normalerweise wäre es jetzt üblich, dem Anwender eine ordentliche Fehlermeldung um die Ohren zu hauen, aber Excel und VBA versuchen Fehler des Anwenders so weit wie möglich glatt zu bügeln und trotzdem ein Ergebnis zu liefern.
In diesem Fall werden dann die x-Werte ignoriert und es wird stattdessen die Reihenfolge der Werte von 1-n als x-Wert verwendet
du holst dir den Text in die x-Werte, weil du den ersten Wert X(1) direkt aus der Textbox zuweist:
x(1) = b1 und b1 = Textbox1.Text
weil x als Variant deklariert ist und Textboxen immer Text enthalten (auch wenn dieser nur aus Ziffern besteht) wird x(1) eben auch ein Text.
du müsstst als bei der Zuweisung von x(1) den Textboxwert in eine Zahl wandeln:

x(1) = CDbl(b1)
in allen Folgeindizes entstehen dann richtige Zahlen, weil du hier den Text (x(1)) in einer Berechnung verwendest und Excel dann versucht, diesen Text in eine Zahl zu wandeln und das funktioniert ja.
Nur bei der direkten Zuweisung (ohne in eine Berechnung eingebettet zu sein) muss VBA natürlich den Originaldatentyp von b1 beibehalten.
Gruss Daniel

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Graph erzeugen. X-Werte stimmen nicht"