< návrat zpět
MS Excel
Téma: Odstranění řádku podle hodnoty v jiném listu
Zaslal/a pejsy 29.5.2014 8:36
Dobré ránko. Chtěl bych se zeptat. V listu 1 mám všechna data, v listu 2 je jen nějaký výběr. Potřeboval bych nějaké makro, které vybere a uloží do listu 3 ty řádky z listu 1, které nejsou obsaženy v listu 2. Určující parametr je skladovka a cena - tedy sloupec R a F v listu 1. Potřebuji, aby to makro vzalo skladovku z listu 2, projelo list1 a pokud narazí na stejnou skladovku, tak ať porovná cenu, pokud se to bude shodovat, tak aby tento řádek v listu 1 smazalo a výsledek uložilo do listu 3. Jinak řečeno, potřebuju z listu 1 ostranit ty řádky, co jsou v listu 2. Díky moc!!!
Příloha: 19745_prace.zip (9kB, staženo 24x)
Palooo(29.5.2014 9:34)#019751 skuste toto:
Sub Macro1()
Z = 1
For x = 2 To Sheets("List1").Cells(2, 1).End(xlDown).Row
aPossible = True
For y = 2 To Sheets("List2").Cells(2, 1).End(xlDown).Row
If Sheets("List1").Cells(x, 18) = Sheets("List2").Cells(y, 1) And Sheets("List1").Cells(x, 6) = Abs(Sheets("List2").Cells(y, 7)) Then aPossible = False: Exit For
Next
If aPossible Then Z = Z + 1: Sheets("List3").Rows(Z).Value = Sheets("List1").Rows(x).Value
Next
End Sub
len bacha na .End(xlDown).Row ... ked bude nejake prazne miesto v prvom stlpci tak to zle urci posledny riadok
citovat
cmuch(29.5.2014 10:58)#019752 Pro poslední řádek lze použít toto(příklad platí pro aktivní list)
LastRow = ActiveSheet.Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Rowcitovat
pejsy(29.5.2014 14:42)#019756 Zdravíčko, šlo by prosím udělat něco jako předtím plus něco navíc?
Upravil jsem zdrojová data. Potřeboval bych tak jako předtím, aby makro vymazalo řádky z list1, které jsou obsaženy v list2 – kritérium skladovka a pak cena, zapsalo to do listu 4 a k tomu pod tato vytříděná data připsalo data z list3?
Příloha: 19756_brezen.zip (60kB, staženo 24x) citovat
pejsy(29.5.2014 14:53)#019759 A ještě takové pokračování.
Šlo by nějak zredukovat řádky? Kritérium je sloupec A skladovka. U položek se stejnou skladovkou ve sloupci A, ALE NEBUDE ŽÁDNÝ NÁZEV VE SLOUPCI C, tak aby se sečetly k dané skladovce kusy a cena? Ostatní řádky, u nichž není skladovka, tak aby zůstaly nezměněné.
citovat
Palooo(29.5.2014 15:03)#019760 tu som dorobil aby velkost tabulky bralo z dola a nie zhora a + tu dalsiu poziadavku
vsimol som si ze v niektorych riadkou nemate uvedenu skladovku ...... tj. makro nebude pracovat spravne
Příloha: 19760_brezen.zip (62kB, staženo 24x) citovat
pejsy(29.5.2014 15:05)#019762 přesně tak, v některých řádcích, není skladovka, šlo by to nějak ošetřit, aby tyto řádky to automaticky přepsalo? třeba nejdříve přepsat tyto řádky a pak ve zbytku tu selektovat?
citovat
Palooo(29.5.2014 15:08)#019763 ako ich ma prepisat?? ... nejak tomu nerozumiem
akoze ich nema brat do uvahy?
citovat
pejsy(29.5.2014 15:14)#019764 řádky z list1, u kterých není vyplněná skladovka, ať rovnou přepíše do list4, ostatní data ať porovná s list2, a nakonec ať připíše do list4 data z list3.
citovat
pejsy(29.5.2014 15:18)#019765 a nakonec, jestli by šlo udělat to zredukování, to znamená že list 4 by to třeba zredukovalo do list5, redukci řádků by to provedlo tak, že pokud bude stejná skladovka (ALE ZÁROVEŇ NEBUDE VYPLNĚN SLOUPEC C), tak aby to sečetlo sloupec D kusy a sloupec E cena pro danou skladovku.
citovat
Palooo(29.5.2014 15:25)#019767 ok tu je to opravene:
Příloha: 19767_brezen.zip (63kB, staženo 24x) citovat