Unauffindbarer Fehler in For-Schleife

  • Excel

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von tulla.

    Unauffindbarer Fehler in For-Schleife

    Hallo VB-Börsianer,

    ich bin neu in der VBA-Programmierung und habe mir hier nun etwas programmiert.
    Die Anwendung soll einen Mini-Buchladen in Ansätzen darstellen. Es wird nach und nach noch ausgebaut.
    Habe auch schon ein Tutorial dazu angeschaut (finde den Link jetzt leider nicht mehr), jedoch ist das Problem, dass er den Autor in der zweiten Zeile der Excel-Datei nicht findet obwohl er doch da ist.
    Suche ich nach dem Titel zu dem entsprechenden Autor (der vorher nicht gefunden wurde), so findet er das Buch.

    Könnt ihr mir vllt sagen wo hier der Fehler liegt?

    Visual Basic-Quellcode

    1. Private Sub ComboBox1_Change()
    2. End Sub
    3. Private Sub CommandButton3_Click()
    4. Dim x As Variant
    5. Z = Sheets(1).UsedRange.Rows.Count
    6. x = ComboBox2
    7. temp = 0
    8. For i = 2 To Z
    9. If Cells(i, 2) = x Then
    10. temp = 1
    11. Exit For
    12. End If
    13. Next
    14. If temp = 1 Then
    15. Unload Me
    16. zeile = i
    17. UserForm2.Show
    18. Else
    19. MsgBox "Autor ist nicht vorhanden ", vbExclamation
    20. ComboBox2 = ""
    21. End If
    22. End Sub
    23. Private Sub CommandButton1_Click()
    24. Dim x As Variant
    25. Z = Sheets(1).UsedRange.Rows.Count
    26. x = ComboBox1
    27. temp = 0
    28. For i = 2 To Z
    29. If Cells(i, 1) = x Then
    30. temp = 1
    31. Exit For
    32. End If
    33. Next
    34. If temp = 1 Then
    35. Unload Me
    36. zeile = i
    37. UserForm2.Show
    38. Else
    39. MsgBox "Buch ist nicht vorhanden ", vbExclamation
    40. ComboBox1 = ""
    41. End If
    42. End Sub
    43. Private Sub CommandButton2_Click()
    44. Unload Me
    45. End Sub
    46. Private Sub UserForm_Initialize()
    47. With ComboBox1
    48. .AddItem "Er ist wieder da"
    49. .AddItem "1913"
    50. .AddItem "Winter der Welt"
    51. .AddItem "Die Kunst des Klaren Denkens"
    52. .AddItem "Böser Wolf"
    53. .AddItem "BLUFF! Die Fälschung der Welt!"
    54. .AddItem "Überman"
    55. .AddItem "Spielball Erde"
    56. .AddItem "Der Gefangende des Himmels"
    57. .AddItem "Ziemlich beste Freunde"
    58. .AddItem "Im Tal des Fuchses"
    59. .AddItem "Der Hobbit"
    60. .AddItem "Die Welt aus den Fugen"
    61. .AddItem "Als Helmut Schmidt einmal..."
    62. .AddItem "Wir sind doch Schwestern"
    63. .AddItem "Verstehen Sie das, Herr Schmidt"
    64. .AddItem "Das Shicksal ist ein mieser Verräter"
    65. .AddItem "Jesus von Nazareth. Prolog - Die Kindheitsgeschichten"
    66. .AddItem "Ein plötzlicher Todesfall"
    67. .AddItem "Neukölln ist überall"
    68. .AddItem "Verachtung"
    69. .AddItem "Schnelles Denken, langsames Denken"
    70. .AddItem "Hundert Namen"
    71. End With
    72. With ComboBox2
    73. .AddItem "Timur Vemes"
    74. .AddItem "Florian Illies"
    75. .AddItem "Ken Follett"
    76. .AddItem "Rolf Dobelli"
    77. .AddItem "Nele Neuhaus"
    78. .AddItem "Manfred Lütz"
    79. .AddItem "Tommy Jaud"
    80. .AddItem "Claus Kleber, Cleo Pascal"
    81. .AddItem "Carlos Ruiz Zafòn"
    82. .AddItem "Philippe Pozzo di Borgo"
    83. .AddItem "Charlotte Link"
    84. .AddItem "John R.R Tolkien"
    85. .AddItem "Peter Scholl-Latour"
    86. .AddItem "Jost Kaiser"
    87. .AddItem "Anne Gesthuysen"
    88. .AddItem "Helmut Schmidt, Giovanni dir Lorenzo"
    89. .AddItem "John Green"
    90. .AddItem "Benedikt XVI."
    91. .AddItem "Joanne K. Rowling"
    92. .AddItem "Heinz Buschkowsky"
    93. .AddItem "Jussi Adler-Olsen"
    94. .AddItem "Daniel Kahnemann"
    95. .AddItem "Cecilia Ahern"
    96. End With
    97. End Sub


    Vielen Dank euch schon mal im Voraus! :)
    Da hilft wohl nur schrittweises Debuggen. Geh mal, vor allem in der Schleife, Zeile für Zeile durch und lass dir die Werte von Cells(...), i, z und x zeigen.
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum
    Ich bin anscheinend nicht befähigt den Fehler zu finden.
    Wenn ich das debugge, dann springt i auch auf 2, aber er findet den Autor am Ende trotzdem nicht.

    Kann ich die ganze Datei hier mal posten und jemand schaut sich das mal genauer an?
    Denn wie ich bemerkte findet er auch einen zweiten Autor nicht, obwohl nachm debuggen alle Titel und Autoren hinzugefügt wurden.
    Ich bin ratlos...
    Wenn ich das richtig lese, kannst das ganze auch verkürzen.
    Ich habe das in einer Form unter Excel so gelöst.

    Visual Basic-Quellcode

    1. Public x As Integer
    2. Public ListI As Integer
    3. Private Sub Workbook_Open()
    4. dim auswahl als String
    5. dim auswahl2 as string
    6. Do While Worksheets("resourcen").Cells(x, 1).Value <> ""
    7. x = x + 1
    8. auswahl = Worksheets("resourcen").Cells(x, 1).Value
    9. auswahl2=Worksheets("resourcen").Cells(x, 2).Value
    10. ComboBox1.AddItem auswahl
    11. ComboBox2.AddItem auswahl2
    12. Loop
    13. End Sub


    Hier die Wahl in der CB

    Visual Basic-Quellcode

    1. Private Sub ComboBox1_Change()
    2. ListI = ComboBox1.ListIndex
    3. ListI = ListI
    4. combobox2.text=ListI
    5. End Sub


    Ich gehe davon aus das du in CB1 den Autor hast und CB2 die Buchtitel. Durch den ersten Bereich lädts du alle Informationen in die CB´s ohne ewige Additem zu machen.
    Rekursive Suche wäre dann wie combobox1_Change() jedoch halt auf CB2

    Das geht sicher auch kürzer.