Hallo Leute,
ich habe folgendes Problem:
Ich habe 2 UserForms. In dem einen lasse ich mir in einer Listbox Daten aus einer Excel-Tabelle anzeigen. Da ich die Daten in der ListBox nicht bearbeiten kann öffne ich das zweite Userform in dem mir die Daten der angeklickten Zeile angezeigt werden. Hier kann ich die Daten bearbeiten und abspeichern.
Hier mal der Code aus dem ersten Form:
'Schließen Button
Private Sub CommandButton1_Click()
Unload Me
End Sub
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
getListBoxItem
End Sub
'Geht die 6 Einträge in der Listbox durch und überprüft welches gerade ausgewählt ist
'Der Wert aus der ersten Spalte der ausgewählten Zeile wird in dem globalen Attribut HMSChange gespeichert und danach wird HMSBearbeiten-Form geöffnet
Private Function getListBoxItem()
For i = 0 To 6
If (ListBox1.Selected(i) = True) Then
HMSChange = ListBox1.Column(0, i)
ListBox1.Selected(i) = False
Exit For
End If
Next i
HMSBearbeiten.Show
End Function
Private Sub UserForm_Initialize()
fillListBox
End Sub
Public Function fillListBox()
ListBox1.RowSource = "HMS!A2:C8"
ListBox1.ColumnCount = 3
End Function
Und hier der Code der zweiten Klasse in der die Daten bearbeitet werden können:
'schreibt den in der Textbox enthaltenen Text in die Excel Tabelle
Private Sub CommandButton1_Click()
For i = 1 To 10
If (Sheets("HMS").Cells(i, 1) = HMSChange) Then
Sheets("HMS").Cells(i, 1) = TextBox1.Text
Sheets("HMS").Cells(i, 2) = TextBox2.Text
Sheets("HMS").Cells(i, 3) = TextBox3.Text
MsgBox "Daten wurden gespeichert."
Exit For
End If
Next i
End Sub
Private Sub CommandButton2_Click()
Unload Me
End Sub
'Holt die zu dieser HMS gehörenden Daten
Private Sub UserForm_Initialize()
TextBox1.Text = HMSChange
TextBox2.Text = GetHMSValue(HMSChange)
TextBox3.Text = GetRTZValue(HMSChange)
End Sub
Der Code funktioniert und schreibt die Daten auch in die Tabelle, aber sobald ich das zweite Form schließe hängt die Anwendung sich auf und ich kann solange nichts machen bis ich mit der Maus in der ListBox war. Dann funktioniert wieder alles?
Das Problem liegt bei "Sheets("HMS").Cells(i, 1) = TextBox1.Text" oder auch Textbox 2 und 3. Wenn ich diesen Code raus nehme funktioniert es ohne sich aufzuhängen. aber was ist an diesem Code falsch??
Vielen dank schon mal für eure Hilfe....
|