Excelzellen per Schleife nacheinander auslesen, in Label anzeigen, durch Buttonclick in andere Zelle schreiben und weiterlesen

  • VB.NET

Es gibt 37 Antworten in diesem Thema. Der letzte Beitrag () ist von FloFuchs.

    Die Lösung steht doch da? Du musst sie doch nur umsetzen?
    Wenn du das garnich hin bekommst, solltest du vielleicht noch mal ein Buch lesen?!

    VB.NET-Quellcode

    1. Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
    2. If i <= 221 Then
    3. xlBlatt.Cells(i, 2) = 0
    4. i = i + 1
    5. Label1.Text = xlBlatt.Cells(i, 1).Value
    6. Else
    7. MessageBox.Show("Ende erreicht")
    8. End If
    9. End Sub
    was genau is denn an den ganzen aufgezeigten Lösungen nicht zu verstehen?
    Die schnellste und einfachste Lösung direkt in Excel über VBA willst du nicht. Wäre super um einfach ma die Grundzüge nachzuvollziehen!!!
    Die nächst einfache Lösung in VB2010 willste auch nich...
    Die von Dir gewünschte Lösung STEHT da... was willst du noch?

    VB.NET-Quellcode

    1. Public Class Form3
    2. Dim xlApp As New Excel.Application
    3. Dim Mappe As Excel.Workbook = xlApp.Workbooks.Open("C:\MMPI\" & Form1.TextBox2.Text & "_" & Form1.TextBox1.Text & "\MMPI" & "_" & Form1.TextBox2.Text & "_" & Form1.TextBox1.Text & ".xls")
    4. Dim Tab1 As Excel.Worksheet = Mappe.Sheets("Tabelle1")
    5. Dim rg As Excel.Range
    6. Dim i As Integer = 2
    7. Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    8. Button1.Hide()
    9. Button2.Hide()
    10. Label2.Text = "Klicken Sie auf Start um zu beginnen."
    11. xlApp.Visible = True
    12. End Sub
    13. Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
    14. Button3.Hide()
    15. Button1.Show()
    16. Button2.Show()
    17. rg = xlApp.Range("A2:A222")
    18. Label2.Text = Tab1.Cells(i, 1).Value.ToString
    19. End Sub
    20. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    21. If i >= 221 Then
    22. rg.Cells(1, i).offsett(1, 0) = 1
    23. i = i + 1
    24. Label2.Text = rg.Value
    25. End If
    26. End Sub
    27. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    28. If i >= 221 Then
    29. rg.Cells(1, i).offsett(1, 0) = 0
    30. i = i + 1
    31. Label2.Text = rg.Value
    32. End If
    33. End Sub
    34. End Class



    Ich habe jetzt nochmal alles gelöscht und versucht den Code so sauber wie möglich hinzuschreiben.

    Was funktioniert? Bei Buttonclick zeigt er den Wert von A2 im Label an. Danach rührt sicher aber nichts mehr. Weder der Ja(btn1) noch der Nein(btn2) Knopf funktionieren.

    Wenn ich das als Laie richtig verstehe, muss in die Buttonclick Sub des Startknopfs(btn3) noch eine Schleife damit er mit der eigentlichen Schleife beginnt, richtig?
    Was mache ich verkehrt?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „DEFCON1“ ()

    in deinem Code in Zeile 31 + 41 ist schon mal offset falsch geschrieben
    Zeile 23 : wir waren glaub bei

    VB.NET-Quellcode

    1. rg = Tab1.Range("A2")

    dann schau dir bitte noch mal die IF-SChleifen genau an...
    Da hab ich eine C&P bremse eingebaut!
    ICh bin sicher du kommst auf den Fehler!
    Vielleicht wärst Du so freundlich und würdest mir den entscheidenden Tipp einfach geben, dann könnte ich mehr Zeit mit der Huldigung deiner Person widmen.

    Ich habe die Range jetzt, wie von dir beschrieben, geändert. Er zeigt in Label2 zwar den Wert der Zelle A2 an, aber danach tut sich leider nichts mehr.
    Gott (FloFuchs :D), bin ich ein Trottel..

    Jetzt funktionierts natürlich auch.. oh man.. Kopf->Tisch!

    Jetzt gibt es nur noch die winzige Kleinigkeit, dass sich der Wert des Labels nicht ändert. Im Label soll ja A2 stehen, nach einem Click A3, erneuter Click A4 usw.

    Ich als Laie sage: Da fehlt ne Schleife in der Startknopf(btn3) Anweisung. Kannst Du mir dazu noch einen Denkanstoß geben?
    Ich sollte natürlich

    VB.NET-Quellcode

    1. Label2.Text = Tab1.Cells(i, 1).Value



    hinschreiben ;)

    Jetzt funktioniert alles! Das einzige Problem was ich jetzt noch habe ist, dass er den ersten Eintrag in B3 schreibt, es aber eigentlich in B2 sollte.

    Schon einmal tausend Dank!!!