< návrat zpět
MS Excel
Téma: Presun riadok v Range
Zaslal/a Dunkaninko 8.12.2011 16:22
Poprosil by som o pomoc pri presune riadku.
V B3:E15 mam nejake data. Ak v jednej bunke z B3:B15 manualne vynulujem obsah (klavesou Delete), potom potrebujem vyplnene riadky pod touto bunkou posunut(shiftup) a riadok vynulovanej bunky (obsah z B :E), vlozit na prvy novo vzniknuty volny riadok. Moze sa to uskutocnit len v rozsahu B3:E15. Data v ostatnych stlpcoch a v riadku 16 sa nesmu menit. Nejde o posun a presun celeho riadku. Ak sa vynuluje posledna vyplnena bunka v rozsahu, tak sa nic neudeje.
Za pomoc dakujem.
Uzamčeno - nelze přidávat nové příspěvky.
Poki(8.12.2011 16:58)#006660 Zkuste tento kod do modulu prislusneho listu:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim C As Variant
Dim D As Variant
Dim E As Variant
If Not Intersect(Target, Range("B3:B14")) Is Nothing Then
If IsEmpty(Target) Then
'ulozeni hodnot z radku smazaneho Becka
C = Cells(Target.Row, 3)
D = Cells(Target.Row, 4)
E = Cells(Target.Row, 5)
Range(Cells(Target.Row, 3), Cells(Target.Row, 5)).ClearContents
'posun casti pod smazanym B
Range(Cells(Target.Row + 1, 2), Cells(15, 5)).Cut Destination:=Range(Cells(Target.Row, 2), Cells(14, 5))
Range("c15") = C
Range("d15") = D
Range("e15") = E
End If
End If
End Subcitovat
Dunkaninko(8.12.2011 23:12)#006662 Dakujem za odpoved. Uvedene makro vklada riadok vynulovanej bunky vzdy do 15. riadku. Chcel som, aby riadok vynulovanej bunky bol vlozeny do prveho volneho riadku. Napr ak z oblasti B3:E15 (vyplna sa dynamicky) je vyplnena len cast B3:E10, potom po zmazani niektoreho B3:B10 sa zmazany riadok vlozi do riadku 10. Ak je vyplnena cela oblast B3:E15, potom zmazany riadok sa vlozi do riadku 15 (ak sa zmaze B15, tak sa nic nedeje).
citovat
Poki(9.12.2011 8:34)#006664 V tom pripade asi takto:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim C As Variant
Dim D As Variant
Dim E As Variant
Dim Radek As Long
If Not Intersect(Target, Range("B3:B14")) Is Nothing Then
If IsEmpty(Target) Then
'ulozeni hodnot z radku smazaneho Becka
C = Cells(Target.Row, 3)
D = Cells(Target.Row, 4)
E = Cells(Target.Row, 5)
Range(Cells(Target.Row, 3), Cells(Target.Row, 5)).ClearContents
'posun casti pod smazanym B
Range(Cells(Target.Row + 1, 2), Cells(15, 5)).Cut Destination:=Range(Cells(Target.Row, 2), Cells(14, 5))
'vlozeni 'umazaneho' radku
Radek = Cells(16, 5).End(xlUp).Row + 1
Cells(Radek, 3) = C
Cells(Radek, 4) = D
Cells(Radek, 5) = E
End If
End If
End Subcitovat
Super, ako vzdy Poki trefa do cierneho.
Dakujem
citovat