Zum ersten Post: Du kannst in "Sheets()" entweder den Index verwenden: Dieser ist numerisch und gibt die Position des Blattes von links (im Reiter) an. Oder Du kannst die Bezeichnung (Caption) verwenden: Das ist ein String. Du hast also entweder "Sheets(2)" oder "Sheets("Tabelle2")".
Zum zweiten Post: Du hast Recht! Bei NICHT zusammenhängenden Bereichen muß man statt des Columns-Objekts das Range-Objekt verwenden. Hatte ich nicht daran gedacht. Hier müßte es etwa
Dim lngAktZeile As String
lngAktZeile = CStr(Target.Row)
Range("A" & lngAktZeile & ":B" & lngAktZeile & ",D" & lngAktZeile).Copy ThisWorkbook.Sheets(2).Cells(lngAktZeile, 1)
heißen wenn die Spalten A bis B und D kopiert werden sollen. In diesem Fall wird aber NICHT spaltengetreu kopiert! Das heißt Spalte A und B landen zwar in Spalte A und B des Ziels, Spalte D wird aber in Spalte C kopiert. Zum spalten geruen kopieren müsstest Du das auf mehrere Male machen:
Dim lngAktZeile As String
lngAktZeile = CStr(Target.Row)
Range("A" & lngAktZeile & ":B" & lngAktZeile).Copy ThisWorkbook.Sheets(2).Cells(lngAktZeile, 1)
Range("D" & lngAktZeile).Copy ThisWorkbook.Sheets(2).Cells(lngAktZeile, 4)
|