09.09.2022, 08:16
Hallo Community,
ich habe gerade einen Fehler in meinem Programm entdeckt. Und zwar füge ich über eine Userform Daten in eine Tabelle.
Dabei suche ich die letzte Zeile und füge dann die Daten in die nächste freie Zeile ein.
Nun zum Problem. Sobald jedoch ein Filter aktiviert ist, welches dann somit die "letzte Zeile" nach oben verschiebt, überschreibt das Programm die darin enthaltenen Daten.
Gibt es eine Möglichkeit die letzte Zeile auch unter Berücksichtigung des Filters zu ermitteln? Hier mein Code:
Man könnte natürlich vor der Abfrage alle Filter entfernen, was allerdings etwas doof wäre.
Gibt es eine andere Möglichkeit?`
Im Voraus besten Dank für die Unterstützung.
VG tyr0n
ich habe gerade einen Fehler in meinem Programm entdeckt. Und zwar füge ich über eine Userform Daten in eine Tabelle.
Dabei suche ich die letzte Zeile und füge dann die Daten in die nächste freie Zeile ein.
Nun zum Problem. Sobald jedoch ein Filter aktiviert ist, welches dann somit die "letzte Zeile" nach oben verschiebt, überschreibt das Programm die darin enthaltenen Daten.
Gibt es eine Möglichkeit die letzte Zeile auch unter Berücksichtigung des Filters zu ermitteln? Hier mein Code:
Code:
Public Function LZ() As Integer
Dim z As Integer, i As Integer
With Worksheets("Liste")
For i = 2 To 8
z = .Cells(.Rows.Count, i).End(xlUp).Row + 1
If z > LZ Then LZ = z
Next i
End With
End Function
Code:
Private Sub CommandButton1_Click()
ActiveWorkbook.Save
Dim z As Integer
Dim ksa As Variant
With Worksheets("Liste")
z = LZ
'ksa = WorksheetFunction.Max(Columns(1)) + 1
ksa = Worksheets("Daten").Range("B2").Value
.Cells(z, 1) = ksa
.Cells(z, 2) = TextBox1.Value
.Cells(z, 3) = TextBox2.Value
.Cells(z, 4) = TextBox3.Value
.Cells(z, 5) = ComboBox1.Value
.Cells(z, 6) = ComboBox2.Value
.Cells(z, 7) = ComboBox3.Value
.Cells(z, 8) = Date
.Cells(z, 9) = TextBox4.Value
.Cells(z, 10) = "0"
.Cells(z, 13) = "offen"
If Strecke.Value = True Then
.Cells(z, 14) = "x"
ElseIf Strecke.Value = False Then
.Cells(z, 14) = ""
End If
.Cells(z, 15) = TextBox16.Value
.Cells(z, 16) = TextBox17.Value
.Cells(z, 17) = TextBox18.Value
End With
TextBox5.Value = ksa
TextBox6.Value = TextBox2.Value
TextBox7.Value = TextBox3.Value
ActiveWorkbook.Save
Man könnte natürlich vor der Abfrage alle Filter entfernen, was allerdings etwas doof wäre.
Gibt es eine andere Möglichkeit?`
Im Voraus besten Dank für die Unterstützung.
VG tyr0n