in diesem Forum habe ich Codes gefunden, mit welchen ich in Tabelle1 Filter setze.
Den gefilterten Bereich kopiere ich in die Tabelle2.
Mittels Listbox werden bestimmte Daten geändert.
Nun möchte ich die geänderten Daten wieder in die Tabelle1 übertragen.
Problem ist jedoch, dass die Zeilen-Nummern von Tabelle2 nicht mit der in Tabelle1
übereinstimmen.
Oder gibt es eine Möglichkeit - die Tabelle1 zu filtern und nur der gefiltete Bereich wird in Listbox1 angezeigt und bearbeitet(es sind 11 Spalten - Daten einlesen erfolgt mit Rowsource).
Besten Dank für eure Hilfe.
nachstehend mein Code:
Private Sub CommandButton6_Click()
With Range("Tabelle2!A1:K122")
Me.Tag = "1"
.Cells(ListBox1.ListIndex + 1, 4).Value = TextBox4
.Cells(ListBox1.ListIndex + 1, 7).Value = TextBox7
.Cells(ListBox1.ListIndex + 1, 8).Value = TextBox8
.Cells(ListBox1.ListIndex + 1, 9).Value = TextBox9
.Cells(ListBox1.ListIndex + 1, 10).Value = TextBox10
.Cells(ListBox1.ListIndex + 1, 11).Value = TextBox11
Me.Tag = ""
End With
End Sub
Private Sub ListBox1_Click()
If Me.Tag = "1" Then Exit Sub
With ListBox1
UserForm1.TextBox1 = .List(.ListIndex, 0)
UserForm1.TextBox2 = .List(.ListIndex, 1)
UserForm1.TextBox3 = .List(.ListIndex, 2)
UserForm1.TextBox4 = .List(.ListIndex, 3)
UserForm1.TextBox5 = .List(.ListIndex, 4)
UserForm1.TextBox6 = .List(.ListIndex, 5)
UserForm1.TextBox7 = .List(.ListIndex, 6)
UserForm1.TextBox8 = .List(.ListIndex, 7)
UserForm1.TextBox9 = .List(.ListIndex, 8)
UserForm1.TextBox10 = .List(.ListIndex, 9)
UserForm1.TextBox11 = .List(.ListIndex, 10)
End With
End Sub
Private Sub UserForm_Initialize()
Application.ScreenUpdating = False
Sheets("Tabelle1").Select
Selection.AutoFilter
ActiveSheet.Range("$A$1:$K$191").AutoFilter Field:=4, Criteria1:="0"
If Worksheets("Tabelle2").Range("A1") = "" Then
Call AF_Kopieren
Sheets("Tabelle1").Select
Selection.AutoFilter
Sheets("Tabelle2").Select
With ListBox1
.ColumnCount = 11
.ColumnWidths = "3,5cm;3,5cm;2,5cm;3cm;3,5cm;3,5cm;2,5cm;3cm;3,5cm;3cm;3,5cm"
.ColumnHeads = False
With Sheets("Tabelle2")
ListBox1.RowSource = "Tabelle2!A1:N500"
End With
End With
Else
Sheets("Tabelle2").Select
With ListBox1
.ColumnCount = 11
.ColumnHeads = False
With Sheets("Tabelle2")
ListBox1.RowSource = "Tabelle2!A1:N500"
End With
End With
End If
Application.ScreenUpdating = True
End Sub
GrussPeter