Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno MS Excel - Kopírování celého řádku do nového listu na základě změny hodnoty v 1.buňce

Zdravím
Pokud to řešit makrem samozřejmě to lze. Jednoduché řešení smazat celý list 2 a nakopírovat co je potřeba.
Třeba takhle:

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
Dim x As Integer
Dim y As Integer

If Target.Column <> 1 Then Exit Sub 'kontrola zda změna nastala v 1. sloupci

List2.Cells.ClearContents 'smazat celý list 2

x = List1.Cells(1, 1).End(xlDown).Row 'zjistí počet řádků na listu 1
y = 1

For i = 1 To x
 If Cells(i, 1) = "x" Then
   Range("A" & i & ":G" & i).Copy 'zkopírovat řádek po sloupec G
    List2.Cells(y, 1).PasteSpecial 'vložit na list2
     y = y + 1
 End If
Next

Cells(1, 1).Select

End Sub

Pokud ovšem bude záznamů hodně bude to pomalé (třeba i několik sekund) pak je třeba to vyřešit jednoznačnou identifikací záznamu (ID) a nekopírovat vše...

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