Excel VBA Problem

12/26/2014 17:26 Kronasify#1
Hey ich hab ein Problem mit VBA und ich komm ums verrecken nicht weiter sitz hier schon seit 3Stunden vllt. kennt sich ja einer damit aus.

Ich soll eine Userform schreiben bei der bei Buttonclick Fünf Wörter aus einer Tabelle ausgegeben werden
also Cell(1,1) = hund Cell (1,2) = Katze und in der msgbox sollen alle Wörter stehen (Hund,Katze,Milch)

Das einzige was ich bisjetzt hinbekommen hab ist es das alle Wörter nacheinander ausgegeben werden.
Quote:
Private Sub CommandButton1_Click()
For i = 1 To 5
Set testrange = Range("A1:A5")
Teststring = testrange.Cells(i, 1)
MsgBox (Teststring)
Set testrange = Nothing
Next

End Sub
12/26/2014 18:13 Mostey#2
Code:
testrange.Cells(i, 1)
Cell(1,1) = Hund
Cell (1,2) = Katze
...

Fällt dir was auf?
12/26/2014 18:45 Kronasify#3
Ja hab mich verschrieben sorry die Wörter stehen in einer Spallte untereinander also
Cells(1,1) = Hund
Cells(2,1) = Katze
...
12/26/2014 19:19 Mostey#4
Und wo genau liegt das Problem wenn du alle Werte nacheinander ausgeben kannst? Dann musst du die doch nur noch anzeigen. Da du nicht erwähnst wie du die Daten ausgeben möchtest (Userform ist nicht präzise genug), kann man dir schlecht helfen.
12/26/2014 19:47 Kronasify#5
Also die werte sollen als String in einer Textbox ausgegeben werden und nicht alle nacheinander in einer msgbox.

Quasi soll genau das passieren:
Quote:
Private Sub CommandButton1_Click()
Set Testrange = Range("A1:A5")
Teststring = Testrange.Cells(1, 1) & Testrange.Cells(2, 1) & Testrange.Cells(3, 1) & Testrange.Cells(4, 1) & Testrange.Cells(5, 1)
TextBox1.Text = Teststring
End Sub
Jedoch ohne das ich jede Zelle einzeln angeben muss :D
12/26/2014 20:35 Mostey#6
Quote:
Originally Posted by Kronasify View Post
Also die werte sollen als String in einer Textbox ausgegeben werden und nicht alle nacheinander in einer msgbox.

Quasi soll genau das passieren:


Jedoch ohne das ich jede Zelle einzeln angeben muss :D
Naja und wo ist da jetzt das Problem? Du kannst doch problemlos vor der Iteration einen String angeben den du während der Iteration erweiterst.

Code:
For i = 1 To 5
    Teststring += Testrange.Cells(i, 1)
Next
Ansonsten gibt es auch ne schöne LINQ Erweiterung, die dir das sogar sauber in eine Zeile packt: [Only registered and activated users can see links. Click Here To Register...]