Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Tabelle gemäß Textboxeingaben füllen





Frage

Hallo liebes Forum! Ich habe wiedermal eine Aufgabenstellung, bei der ich mit meinen marginalen VBA-kenntnissen bisher nicht weitergekommen bin... Ich habe 2 Textboxes mit deren Hilfe ein Zahlenbereich angegeben wird. gemäß "Von: |txtbox1| bis: |txtbox2|" Die Zahlen in diesem Bereich soll dann (per Button) in eine Tabelle geschrieben werden. es handelt sich um Zahlen mit einer Nachkommastelle (1,0). Ein Beispiel: Von -0.5 bis 1.0 eingegeben, in der Tabelle stehen dann die Zahlen -0,5 -0,4 -0,3 ... 0,8 0,9 1,0 Mein Problem ist jetzt die Werte der Textboxes in eine Beziehung mit der Tabelle zu bringen... Ich wäre sehr dankbar für jede Hilfe! Lg, Rudi

Antwort 1 von Beverly

Hi rudigus,

versuche es mal mit diesem Code

Private Sub CommandButton1_Click()
    Dim doWert As Double, doWert2 As Double
    Dim loZeile As Long
    If UserForm1.TextBox1.Value > UserForm1.TextBox2.Value Then
        MsgBox "Wert in Textfeld1 muss kleiner als Wert in Textfeld2 sein!"
        Exit Sub
    End If
    loZeile = 1
    doWert = UserForm1.TextBox1.Value
    For doWert2 = UserForm1.TextBox1.Value To UserForm1.TextBox2.Value + 0.1 Step 0.1
        doWert = Round(doWert, 1)
        Worksheets("Tabelle1").Cells(loZeile, 1).Value = doWert
        doWert = doWert + 0.1
        loZeile = loZeile + 1
    Next doWert2
End Sub


Bis später,
Karin

Antwort 2 von rudigus

Hallo liebe Karin,
vielen Dank für deine Mühe, es funktioniert!!

Nur eine Kleinigkeit:
Wieso hast du in der Zeile
For doWert2 = UserForm1.TextBox1.Value 
To UserForm1.TextBox2.Value + 0.1 Step 0.1

dieses
+0.1
?
Ich musste es entfernen, da ansonsten eben um ein 0,1 zu weit gezählt wurde.


Ich hatte die Blödheit das Objekt UserForm1 zu ignorieren, daher hat es schon im Ansatz nie funktioniert...

Nochmals vielen Dank!

Antwort 3 von Beverly

Hi rudigus,

an und für sich ist der Code logischerweise natürlich ohne diesen Zusatz richtig, aber aus einem mir unerklärlichen Grund läuft er bei mir nur mit dem Zusatz korrekt. Ich arbeite mit Excel2002.

Bis später,
Karin

Antwort 4 von rudigus

Danke für die Antwort!

Übrigens:
Gibt es vielleicht eine sinnvolle Möglichkeit dem Programm zu sagen, dass der Wert in Textbox2 UNBEDINGT um 1,5 größer sein muss als jener in Textbox2 ?

Ich bin bisher nur auf NICHTsinnvolle Möglichkeiten gestoßen... :(

Liebe Grüße,

Rudi

Antwort 5 von Beverly

Hi Rudi,

versuche es mal mit diesem Code

Private Sub TextBox2_AfterUpdate()
    If TextBox2.Value < 1.5 * Val(TextBox1.Value) Then TextBox2.Value = 1.5 * Val(TextBox1.Value)
End Sub


Bis später,
Karin