ich habe folgenden Code, um Werte zu finden und die gefundenen Werte (Tabelle Artikel) möchte ich in die Tabelle "Verkauft" jeweils anfügen.
Allerdings klappt das kopieren und einfügen nicht. Es kommt, ziemlich weit unten im Code, die Fehlermeldung Typen unverträglich
Kann bitte mal jemand drüber schauen.
Private Sub Bezahlt_Click()
Dim wsSearch As Worksheet
Dim c As Range
Dim wsTarget As Worksheet
Dim strFind As String
Dim firstAddress As String
Dim arrFiles As Variant
Dim arrSheets As Variant
Dim I As Integer
Dim rng_Row As Range
Dim lngLetzteZeile As Integer
wks_Verk = "Verkauft"
wks_Art = "Artikel" 'Tabellenblatt aus dem die Daten geholt werden sollen
Endung = "_B"
strFind = InputBox("Bitte Vorgangsnummer eingeben", "Vorgangsnummer")
arrFiles = Array(ThisWorkbook.Path & "Artikelliste.xlsm")
'Namen der Sheets in der entsprechenden Reihenfolge der oben angeführten Dateien
arrSheets = Array(wks_Art)
'Screenflicker unterdrücken
Application.ScreenUpdating = False
Application.DisplayAlerts = False
'Alle Dateien im Array verarbeiten
For I = 0 To UBound(arrFiles)
'Mappe öffnen
Set wsSearch = ThisWorkbook.Sheets(wks_Art)
'Suche in der Mappe in Spalte W (Wert der Zelle muss in diesem Fall komplett ü _
bereinstimmen, wenn das nicht gewünscht ist LookAt:= auf xlPart ändern)
With wsSearch.Range("X:X")
Set c = .Find(strFind, LookIn:=xlValues, LookAt:=xlWhole)
If c Is Nothing Then 'Wenn die Vorgangsnummer nicht vorhanden oder falsch ist, _
dann den Vorgang abbrechen
If MsgBox("Diese Vorgangsnummer ist nicht vorhanden", vbOKOnly, "Achtung") = _
vbOK Then
Unload UserForm1
Exit Sub
End If
End If
If Not c Is Nothing Then
firstAddress = c.Address
Range(c.Address).Select 'Die Zeile in der der zu suchende Wert ist _
markieren
Do
Union(Selection, Range(c.Address)).Select 'alle Zeilen in denen der zu _
suchende Wert vorkommt markieren
'Finde den nächsten passenden Eintrag
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address firstAddress
End If
End With
Next
'Screenflicker unterdrücken
Application.DisplayAlerts = True
Application.ScreenUpdating = True
'Ab hier erfolgt dann das Auslesen der Daten aus den entsprechenden Zellen der oben _
selektierten Zeilen
'und die Zuordnung in die Tabelle Verkauft
Set wks_Verk = ThisWorkbook.Worksheets(wks_Verk)
Set wks_Art = ThisWorkbook.Worksheets(wks_Art)
For Each rng_Row In Selection.Rows
With wks_Verk
lngLetzteZeile = .Cells(Rows.Count, 1).End(xlUp).Row
End With
Worksheets(wks_Art).Range(rng_Row.Row).EntireRow.Copy Destination:=Worksheets(wks_Verk). _
Range("A" & lngLetzteZeile) 'Typen unverträglich
Next
End Sub