Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 9 odgovora
  • 3.515 pregleda

Najnovija ↓

Zabrana brisanja reda total 29.07.2010. u 15:08 · pre 197 meseci #1
Imam tabelu sa nekoliko redova, napravo sam dva makroa jedan za dodavanje novog reda sa formatiranim ćelijama a drugi za brisanje. E sad problem mi je što kod dodavanja reda dodajem uvek novi iznad totala i to nekako funcioniše ali kod brisanja reda ako nije selektovan red koji hocu da obrišem on obriše bilo koji koji je selektovan ali ajde nekako to mogu i da rešim sa nekom napomenom da pre brisanja selektuju red koji hoće da brišu. ali ono što me zanima jeste kako da kada dođe do reda u kome se nalazi total zabranim brisanje tog reda koji nije uvek u istom redu ali ima sadržaj u ćeliji "SVEGA" ili "TOTAL" u B, G ili bilo kojoj koloni. Bilo bi dobro da jo[ i dodam msgbox tipa "OAVJ RED SE NE MOZE OBRISATI" ali svakako mi je vaznije da stvarno i ne moze.
Potpis
www.igre-konzole.rs
www.tehnologin.rs
Re: Zabrana brisanja reda total 29.07.2010. u 18:46 · pre 197 meseci #2
Malo je nejasno sve to bez primera (bolje da si okacio taj cod kojim brises redove). Baci pogled na ovu temu:http://www.elitesecurity.org/t386414-0#2481133
Tu je JPeca dao mali kurs brisanja redova, zavisno od nekog uslova.
Ako je kod tebe to jednostavno - "neki opseg ...ClearContents" (samo nagadjam), onda dodaj jedan IF da sprecis brisanje tog reda - npr.11, ako je npr. u "C11" - total, odnosno "Svega". Nesto kao (sve naprimer) :
If Range("C11") <> "Svega" Then (.....neki opseg). Clear / ClearContents...
Pogledaj ipak gornju temu, zaista mnogo govori o brisanju redova. Ako ne pomogne okaci tvoj primer. Pozdrav

Re: Zabrana brisanja reda total 30.07.2010. u 01:41 · pre 197 meseci #3
Evo zakačio sam primer pa ako neko bude mogao da pomogne neka bude što jasniji pošto nisam baš vešt sa VBA.

Osim ovog problema imam pitanje i za redni broj pošto koristim funkciju =IF(B13="";"";1) za prvi redni broj a posle za svaki sledeć =IF(B14="";"";A13+1), pa me zanima da li postoji neko jednostavnije ili naprednije rešenje za redni broj da u formi ne koristim kao osnovu dva reda nego samo jedan a da mi makro dodaje sledeći ili kod brisanja ako neko obriše red iz sredine da se ažurira.
Potpis
www.igre-konzole.rs
www.tehnologin.rs
Re: Zabrana brisanja reda total 01.08.2010. u 13:57 · pre 197 meseci #4
Kao sto rekoh u prvom odgovoru, samo je trebalo dodati jedan IF u codu, pre brisanja. Preradio sam malo tvoj primer (kod mene je Excel-2003), i trebalo bi da ti zavrsi posao. U polju "SVEGA" sam pobrisao spejsove ispred "S". Sto se tice rednog broja, malo je nezgodno u tvom slucaju, zbog one donje tabele. Ja sam ti promenio funkciju u "A" koloni, pa vidi da li ti je tako bolje. Ako nije, ti vrati tvoju funkciju. Pozdrav
Re: Zabrana brisanja reda total 01.08.2010. u 19:03 · pre 197 meseci #5
Za redni broj ovo je super. Prilagodi.

Primer: u A1 unesi

=SUBTOTAL(3;$B$1:B1)

i razvuci u ostale ćelije kolone A


Sve najbolje.
Ratko.
Re: Zabrana brisanja reda total 02.08.2010. u 01:05 · pre 197 meseci
izmenjeno 2 puta, poslednji put savetnik.org 02.08.2010. u 01:23
  1. savetnik.org02.08.2010. u 01:23zapis iz teksta poruke
  2. savetnik.org02.08.2010. u 01:19zapis iz teksta poruke
#6
Hvala puno probao sam ja sa nekim IF ali nije ni približno uspelo. Samo nisam shvatio koji deo koda mu je zabranio brisanje.
If Range("B15").Value = "SVEGA" Then MsgBox "OVAJ RED SE NE MOZE OBRISATI !", vbInformation: Exit Sub

I još samo jedno pitanjce ovde si postavio Range("B15") a jel može da Range bude u bilo kojoj B ćeliji mislim da ukoliko dodam još neku kolonu iznad tabele...
Potpis
www.igre-konzole.rs
www.tehnologin.rs
Re: Zabrana brisanja reda total 02.08.2010. u 02:38 · pre 197 meseci #8
Pa taj red koji si citirao je zabrana brisanja. ---If Range("B15").Value = "SVEGA" Then MsgBox "OVAJ RED SE NE MOZE OBRISATI !", vbInformation: Exit Sub---
U prevodu - Ako je u B15 "SVEGA" sledi poruka o zabrani i obustava procedure (Exit Sub). Mozes ti bilo gde da stavis "SVEGA", i u kodu da promenis referencu (naprimer - umesto "If Range("B15")...", stavi "If Range("B199")...". Samo da ti u "B199" bude SVEGA, i bez spejsova. Dodavanjem redova (tvoje dugme - NOVI RED) ti remetis adresu celije gde je "SVEGA". Tako omogucavas brisanje redova, sve do trenutka kad "SVEGA" ponovo bude u "B15" ili recimo u "B199". Takva ti je struktura tabele koju si postavio. Ja bih ipak razmislio o brisanju opsega celija metodom ClearContents, umesto sto brises seo red. Naprimer - umesto tvog coda
Rows("15:15").Select
Selection.Delete Shift:=xlUp 'brisanje celog 15.reda
treba probati sa
Range("B15:L15").Select
Selection.ClearContents 'brisanje podataka u 15.redu (od B-l)
Time cuvas strukturu redova, sa svim funkcijama i ne brines o dodavanju novog reda pre brisanja. Treba, doduse, posle ClearContents izvrsiti sortiranje cele tabele po nekom kriterijumu ("DATA-SORT...") da bi se sve skockalo, ali sve to moze kao i tvoj makro da se snimi (Record-om) i po potrebi preradi. Pozdrav.
Sviđa mi se1
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme