Mocno awaryjny jest ten kod i nie do końca o to mi chodziło. Nie wiem też po co te +1 skoro mam skopiować zakres z ostatniej kolumny. Być może niezbyt dokładnie wyjaśniłem o co mi chodzi. Makro powinno dodawać kolumnę i brać dane z wcześniejszej kolumny i dodawać je o poziom niżej w tej nowej kolumnie. Te dane to zazwyczaj pojedyncze komórki (np tytuły) więc funkcja End(xlDown) się nie sprawdza. Obecnie to gdzie wstawię nową kolumnę wybieram przez InputBox który jest pod zmienną iCol. Kombinowałem z tym kodem i wydaje mi się że najbliżej tego o co mi chodzi jest ten kod:
ws1.Columns(iCol).EntireColumn.Insert
ws1.Cells(1, iCol).Value = "Level " & iCol
ws1.Cells(2, iCol - 1).Copy Cells(3, iCol)
Nie wiem tylko jak to sprawnie zrobić żeby nie kopiowało tylko drugiego wiersza ale od 2 wiersza do samego końca tabeli "wsWBS.Cells(2, iCol - 1).Copy Cells(3, iCol)".
Docelowo ma nie być InputBoxa tylko powinno dodawać nową kolumnę za ostatnią z wprowadzonymi danymi i to nie na koniec tabeli tylko wewnątrz bo w dwóch ostatnich kolumnach są inne dane i nie chcę ich ruszać. Trochę zagmatwane :D