Zalijepite u filtrirane redove

Vrlo česta situacija, pitanje o kojem mi se postavlja skoro na svakom treningu. Postoji tabela u kojoj je Filter (Podaci – Filter) odabrano je nekoliko linija. Zadatak je da umetnemo sve vrijednosti koje su nam potrebne tačno u vidljive filtrirane redove, a da preskočimo skrivene. Normalno copy-paste u ovom slučaju neće raditi, jer će podaci biti umetnuti ne samo u vidljive, već iu skrivene ćelije. Hajde da vidimo kako da zaobiđemo ovaj problem.

Metoda 1: Zalijepite duple vrijednosti ili formule

Ako trebate umetnuti iste vrijednosti u sve filtrirane redove liste, onda je sve jednostavno. Pretpostavimo da imamo sljedeću listu transakcija:

Zalijepite u filtrirane redove

… i u njega morate staviti fiksni popust od 1000 rubalja za svaki Auchan.

Filtriramo našu listu pomoću AutoFilter-a, ostavljajući samo “Auchans” na ekranu. Unesite željenu vrijednost u prvu ćeliju i rastegnite (kopirajte iz donjeg desnog ugla ćelije) prema dolje:

Zalijepite u filtrirane redove

Smart Excel u ovom slučaju razumije da želite unijeti vrijednosti u filtrirane ćelije i radi ono što vam je potrebno:

Zalijepite u filtrirane redove

Ova metoda je pogodna za unos vrijednosti i za unos formula. Na primjer, ako popust za Auchan nije fiksni, već iznosi 10% iznosa transakcije, tada u prvi filtrirani red možete unijeti ne konstantu (1000), već formulu (=C2*10%) i kopirati to dole.

Metoda 2. Makro za umetanje bilo koje vrijednosti

Druga stvar je ako trebate umetnuti u filtrirane ćelije ne iste vrijednosti ili formule, već različite, pa čak i uzeti ih iz drugog raspona. Zatim morate koristiti jednostavan makro. Pritisnite prečicu na tastaturi Alt + F11, u prozoru Visual Basica koji se otvori, umetnite novi prazan modul kroz meni Umetak – Modul i kopiraj ovaj kod tamo:

Sub PasteToVisible() Dim copyrng As Range, pasterng As Range Dim cell As Range, i As Long 'pitajte korisnika za kopiranje i lijepljenje raspona naizmjence Postavite copyrng = Application.InputBox("Copy range", "Request", Type:= 8 ) Postavite pasterng = Application.InputBox("Insert Range", "Request", Type:=8) 'provjerite da li su iste veličine Ako pasterng.SpecialCells(xlCellTypeVisible).Cells.Count <> copyrng.Cells.Count Onda MsgBox "Kopiraj i zalijepi raspone različitih veličina!",vbCritical Exit Sub End Ako 'prenesi podatke iz jednog raspona u drugi samo u vidljivim ćelijama i = 1 Za svaku ćeliju U zalijepljenju Ako cell.EntireRow.Hidden = False Onda cell.Value = copyrng. Ćelije(i).Vrijednost i = i + 1 End If Next cell End Sub  

Kao što možete lako zamisliti, makro traži od korisnika dva raspona redom – kopiraj i lijepi. Zatim provjerava da li su njihove veličine iste, jer će razlika u dimenzijama naknadno uzrokovati grešku u umetanju. Makro tada prolazi kroz sve ćelije u rasponu lijepljenja i tamo prenosi podatke iz raspona kopiranja ako je red vidljiv (tj. nije filtriran).

  • Šta su makroi, kako ih koristiti, gdje ubaciti makro kod u Visual Basic

 

Ostavite odgovor