habe eine Eingabe Maske mit einer Listbox, 6 Textboxen, und 4 Bottems,...mit neuer Eintrag, Löschen von Einträgen, Speichern und Beenden....beim drücken des Bottems Löschen, löscht er mir nun die ganze zeile, auch die formeln die hinter der Zelle F stehen....das heist beim drücken des Bottems Löschen , soll er mir nur die daten löschen die von der eingabe maske eingetragen wurden , nämlich den datensatz von der spalte A - F...habe mal versucht das exelfile hochzuladen aber denke du kannst es nicht öffnen...drum hab ich nochmal die ganze formel hier angehängt....hoffe es hilft .....danke im vorraus Herbert
Option Explicit
Option Compare Text
Private Sub CommandButton1_Click()
Dim lZeile As Long
lZeile = 2
Do While Trim(CStr(Sheet2.Cells(lZeile, 1).Value)) <> ""
lZeile = lZeile + 1
Loop
Sheet2.Cells(lZeile, 1) = CStr("New line " & lZeile)
ListBox1.AddItem CStr("New line " & lZeile)
ListBox1.ListIndex = ListBox1.ListCount - 1
End Sub
Private Sub CommandButton2_Click()
Dim lZeile As Long
If ListBox1.ListIndex = -1 Then Exit Sub
lZeile = 2
Do While Trim(CStr(Sheet2.Cells(lZeile, 1).Value)) <> ""
If ListBox1.Text = Trim(CStr(Sheet2.Cells(lZeile, 1).Value)) Then
Sheet2.Rows(CStr(lZeile & ":" & lZeile)).Delete
Call UserForm_Initialize
If ListBox1.ListCount > 0 Then ListBox1.ListIndex = 0
Exit Do
End If
lZeile = lZeile + 1
Loop
End Sub
Private Sub CommandButton3_Click()
Dim lZeile As Long
If ListBox1.ListIndex = -1 Then Exit Sub
If Trim(CStr(TextBox1.Text)) = "" Then
MsgBox "Sie müssen mindestens einen Namen eingeben!", vbCritical + vbOKOnly, "FEHLER!"
Exit Sub
End If
lZeile = 2
Do While Trim(CStr(Sheet2.Cells(lZeile, 1).Value)) <> ""
If ListBox1.Text = Trim(CStr(Sheet2.Cells(lZeile, 1).Value)) Then
Sheet2.Cells(lZeile, 1).Value = Trim(CStr(TextBox1.Text))
Sheet2.Cells(lZeile, 2).Value = TextBox2.Text
Sheet2.Cells(lZeile, 3).Value = TextBox3.Text
Sheet2.Cells(lZeile, 4).Value = TextBox4.Text
Sheet2.Cells(lZeile, 5).Value = TextBox5.Text
Sheet2.Cells(lZeile, 6).Value = TextBox6.Text
If ListBox1.Text <> Trim(CStr(TextBox1.Text)) Then
Call UserForm_Initialize
If ListBox1.ListCount > 0 Then ListBox1.ListIndex = 0
End If
Exit Do
End If
lZeile = lZeile + 1
Loop
End Sub
Private Sub CommandButton4_Click()
Unload Me
End Sub
Private Sub Label1_Click()
End Sub
Private Sub Label3_Click()
End Sub
Private Sub Label4_Click()
End Sub
Private Sub Label5_Click()
End Sub
Private Sub ListBox1_Click()
Dim lZeile As Long
TextBox1 = ""
TextBox2 = ""
TextBox3 = ""
TextBox4 = ""
TextBox5 = ""
TextBox6 = ""
If ListBox1.ListIndex >= 0 Then
lZeile = 2
Do While Trim(CStr(Sheet2.Cells(lZeile, 1).Value)) <> ""
If ListBox1.Text = Trim(CStr(Sheet2.Cells(lZeile, 1).Value)) Then
TextBox1 = Trim(CStr(Sheet2.Cells(lZeile, 1).Value))
TextBox2 = Sheet2.Cells(lZeile, 2).Value
TextBox3 = Sheet2.Cells(lZeile, 3).Value
TextBox4 = Sheet2.Cells(lZeile, 4).Value
TextBox5 = Sheet2.Cells(lZeile, 5).Value
TextBox6 = Sheet2.Cells(lZeile, 6).Value
Exit Do
End If
lZeile = lZeile + 1
Loop
End If
End Sub
Private Sub TextBox3_Change()
End Sub
Private Sub TextBox9_Change()
End Sub
Private Sub UserForm_Activate()
If ListBox1.ListCount > 0 Then ListBox1.ListIndex = 0
End Sub
Private Sub UserForm_Initialize()
Dim lZeile As Long
TextBox1 = ""
TextBox2 = ""
TextBox3 = ""
TextBox4 = ""
TextBox5 = ""
TextBox6 = ""
ListBox1.Clear
lZeile = 2
Do While Trim(CStr(Sheet2.Cells(lZeile, 1).Value)) <> ""
ListBox1.AddItem Trim(CStr(Sheet2.Cells(lZeile, 1).Value))
lZeile = lZeile + 1
Loop
End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP