Speicher Problem User Form Eingabe

  • Excel

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von Rieu.

    Speicher Problem User Form Eingabe

    Hallo zusammen,
    mein Problem liegt in dem Speichern von Daten über eine UserForm in einer Excel Liste und dem richtigen Anzeigen in der ListBox.

    Ablaufbeschreibung:
    Ich habe eine UserForm, welche Umfangreich mit TextBoxen und Checkboxen übersäht ist. Wenn ich auf neuen Benutzer Anlegen drücke, kann ich dort Daten eingeben und drücke dann auf Speichern, erst dann steht es fest in der Excel Tabelle.

    Problem: Beim ersten mal funktioniert das ganze Super, aber wenn ich dann einen zweiten Datensatz eingebe, überspecihert er "teilweiße" den Alten.

    Schaut euch mal bitte den folgenden Code an, vlt seht ihr auf anhieb das Problem :)

    Visual Basic-Quellcode

    1. Private Sub speichert_Click()
    2. 'Funktion zum speichern
    3. Dim iRows As Integer
    4. Dim i As Integer
    5. Dim b As Boolean
    6. 'Anzahl der Einträge Prüfen
    7. Dim z As Integer
    8. 'z = Sheets("Aktuelle").Cells(Rows.Count, 1).End(xlUp).Row
    9. z = Sheets("Aktuelle").Range("B65536").End(xlUp).Row 'Ende ermitteln
    10. If Sheets("Listen").Cells(2, 5) = 1 Then 'If 1
    11. MsgBox "Bitte Klicken sie !Neuer Bewerber!"
    12. Else
    13. 'Überprüfen der Einträge nach Doppelten Werten
    14. b = True
    15. For i = z To 1 Step -1
    16. If b = True Then 'If 2
    17. 'Überprüft Nachname und Vornamen und Geburtsdatum
    18. If textName.Text = Sheets("Aktuelle").Cells(i, 6).Value And textVorname.Text = Sheets("Aktuelle").Cells(i, 7).Text And gebDatum.Text = Sheets("Aktuelle").Cells(i, 8) Or textName.Text = Sheets("Archiv").Cells(i, 6).Value And textVorname.Text = Sheets("Archiv").Cells(i, 7).Text And gebDatum.Text = Sheets("Archiv").Cells(i, 8) Then 'If 3
    19. 'Trifft alles zu KOmmt Meldung
    20. MsgBox "!!! ACHTUNG !!! Schon Vorhanden !!!"
    21. 'B wird auf falsch gesetzt damit kein Eintrag gemacht wird
    22. b = False
    23. Exit For
    24. End If 'Ende If 3
    25. End If ' Ende If 2
    26. Next i 'Nächster Eintrag Prüfen
    27. ' Else 'Else zu If 1
    28. 'z = i
    29. 'End If 'Ende If 1
    30. 'Überprüft ob er sie Eintragen darf
    31. If b = True Then
    32. 'Schreibt werte in die Zeile, z steht für die Reihe
    33. Sheets("Aktuelle").Cells(z, 1) = UserForm1.eingangsdatum.Text
    34. Sheets("Aktuelle").Cells(z, 2) = UserForm1.weiter.Value
    35. Sheets("Aktuelle").Cells(z, 3) = UserForm1.weiterAn.Text
    36. Sheets("Aktuelle").Cells(z, 4) = UserForm1.weiterAm.Text
    37. Sheets("Aktuelle").Cells(z, 5) = UserForm1.ComboBox3.Text
    38. Sheets("Aktuelle").Cells(z, 6) = UserForm1.textName.Text
    39. Sheets("Aktuelle").Cells(z, 7) = UserForm1.textVorname.Value
    40. Sheets("Aktuelle").Cells(z, 8) = UserForm1.gebDatum.Text
    41. Sheets("Aktuelle").Cells(z, 9) = UserForm1.ComboBox1.Text
    42. Sheets("Aktuelle").Cells(z, 10) = UserForm1.telNummer.Text
    43. Sheets("Aktuelle").Cells(z, 11) = UserForm1.adresse.Text
    44. Sheets("Aktuelle").Cells(z, 12) = UserForm1.TextBox3.Text
    45. Sheets("Aktuelle").Cells(z, 14) = UserForm1.ComboBox2.Text
    46. Sheets("Aktuelle").Cells(z, 15) = UserForm1.TextBox8.Text
    47. Sheets("Aktuelle").Cells(z, 16) = UserForm1.TextBox7.Text
    48. Sheets("Aktuelle").Cells(z, 13) = UserForm1.TextBox4.Text
    49. Sheets("Aktuelle").Cells(z, 17) = UserForm1.schulabschluss.Text
    50. Sheets("Aktuelle").Cells(z, 18) = UserForm1.ausbildung.Text
    51. Sheets("Aktuelle").Cells(z, 19) = UserForm1.exam.Value
    52. Sheets("Aktuelle").Cells(z, 20) = UserForm1.sonstiges.Text
    53. Sheets("Aktuelle").Cells(z, 21) = UserForm1.listestellen.Text 'Beworben auf...
    54. Sheets("Aktuelle").Cells(z, 22) = UserForm1.TextBox5.Text
    55. Sheets("Aktuelle").Cells(z, 23) = UserForm1.TextBox6.Text
    56. Sheets("Aktuelle").Cells(z, 24) = UserForm1.textGeb.Text
    57. Sheets("Aktuelle").Cells(z, 25) = UserForm1.eingabebestetigung.Value
    58. Sheets("Aktuelle").Cells(z, 26) = UserForm1.einladung.Value
    59. Sheets("Aktuelle").Cells(z, 27) = UserForm1.zusage.Value
    60. Sheets("Aktuelle").Cells(z, 28) = UserForm1.absage.Value
    61. Sheets("Aktuelle").Cells(z, 29) = UserForm1.eingestellt.Value
    62. Sheets("Aktuelle").Cells(z, 30) = UserForm1.telNummerZwei.Value
    63. End If
    64. 'Automatisches füllen der listBox
    65. Dim t As Integer
    66. With ListBox1
    67. For t = z To 1 Step -1
    68. .ColumnCount = 2
    69. .RowSource = "Aktuelle!F1:G35536"
    70. Next t
    71. .ListIndex = 0
    72. End With
    73. b = True
    74. End If
    75. End Sub


    Danke im Vorraus =)
    Du schreibst: "Problem: Beim ersten mal funktioniert das ganze Super, aber wenn ich dann einen zweiten Datensatz eingebe, überspecihert er "teilweiße" den Alten."

    Teilweise heisst genau was?

    Ich vermute mal, dass es mit Deiner Berechnung von z zusammenhängt.

    Ich bin mir auch nicht ganz sicher, ob es richtig, dass Du die neuen Daten in die Koordinaten z, Spalte schreibst. Müsste das nicht z+1, Spalte sein?

    Und grundsätzlich ist das natürlich sehr schwer für einen Aussenstehenden zu lesen (IF A = B then C = D, for I = x - z to q + r step 2) und zu verstehen.