Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Excel VBA - vytvoření databáze

... chyba je v Range(x).Select ...

Samozřejmě, protože v "x" máš číslo (prvního prázdného řádku), nikoli objekt typu Range:

x = Range("B1").End(xlDown).Row + 1 ' PrvníPrázdnýŘádek

Takže zkus

Cells(x,2).Select

... jak mi to vybírá Rows(i).Select, tak bych ten selektovaný řádek potřeboval BEZ první buňky zleva...

A proč vůbec vybíráš celý řádek? To tam máš tolik údajů? Určitě ne, že. Takže zkus vybrat oblast od druhého třeba do 20. sloupce:

Range(Cells(x,2),Cells(x,20)).Select

Anebo rovnou bez Selektu:

Range(Cells(x,2),Cells(x,20)).Copy

Dále - místo té spousty ElseIfů využij strukturu Select Case.

A ještě jeden tip - učit se VBA přes záznamy maker není až tak špatné, ale ty makra jsou často hodně nepřehledné a zabordelené, takže je vhodné je trochu pročistit a učesat. Například ten tvůj záznam uvedený na začátku dotazu (sub makro_kopirovani) lze upravit a zjednodušit několika možnými způsoby:

sub makro_kopirovani_uprava1()
  Sheets("Přehled").Rows("12:12").Copy
  Sheets("KKY").Activate
  Range("A4").Select
  ActiveSheet.Paste
end sub

sub makro_kopirovani_uprava2()
  Worksheets("Přehled").Rows("12:12").Copy Destination:=Worksheets("KKY").Range("A4")
end sub

Edit: Než jsem odeslal odpověď, koukám, že už jsi na ten první bod přišel...

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny