Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

[Excel] sprečavanje mjenjanja podataka novim unosom u tabelu

[es] :: Office :: Excel :: [Excel] sprečavanje mjenjanja podataka novim unosom u tabelu

[ Pregleda: 2734 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Sudarica

Član broj: 119175
Poruke: 209
*.dialin.iskon.hr.



Profil

icon [Excel] sprečavanje mjenjanja podataka novim unosom u tabelu11.07.2007. u 21:44 - pre 204 meseci
Molim pomoć

Primjer:

Unjela sam podatke za 5 mjesec. Ćelije su mi povezane formulama. U 6 mjesecu mi se mjenja fond sati i ako ga promjenim mjenja mi se i podatak unesen u 5 mjesecu a to se nije u redu. U svim praznim ćelijama nalaze se formule i one bi trebale ostati netaknute jer će se u njih u sledećem mjesecu unositi podaci koji se moraju izračunavati.

Zaključak:

Trebala bi makro naredbu koja bi mi zaštitila sve popunjene ćelije od 12 reda (uvijek) od promjena a cjelu radnu knjigu pospremila bi dajući joj naziv po podacima spojenim iz dvije ćelija a to su uvijek ćelija B4 i G4. Putanja pospremanja bi bila C:\Razno\..C4+G4.xls

Napomena:
Ova tema se naslanja na temu koju sam počela u "[Excel] Prepisivanje podataka iz više datoteka u jednu po određenom kriteriju" jer tamo vjerojatno onaj poslednji dio nije spadao trebao je biti nova tema


Hvala

Pozdrav
 
Odgovor na temu

Jpeca
Predrag Jovanović
poslovni analitičar
Gowi
Pančevo

Moderator
Član broj: 25683
Poruke: 2268
212.200.27.*

Sajt: www.gowi.rs


+109 Profil

icon Re: [Excel] sprečavanje mjenjanja podataka novim unosom u tabelu26.07.2007. u 07:37 - pre 204 meseci
Nisam pratio prethodne nastavke, ali ovaj deo mi se ne čini problematičnim.

Citat:
Trebala bi makro naredbu koja bi mi zaštitila sve popunjene ćelije od 12 reda (uvijek) od promjena ...

Postoji mnogo načina da se to uradi, ali mi se čini najlakše da se opseg kopira sam u sebe po vrednosti. Pošto nisam siguran da li se radi samo o podacima na jednom listu ili više, evo procedure koja to radi zavisno od lista koji se zada:
Code:

Sub ToValue(sh As Worksheet, rwStart As Long, rwEnd As Long)
'   Pretvara sve formula u zadatom listu sh
'   u redovima od rwStart do rwEnd u vrednosti
'
' P. Jovanovic za elitesecurity forum

    sh.Rows(Str(rwStart) & ":" & LTrim(Str(rwEnd))).Copy
    sh.Cells(rwStart, 1).PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False
End Sub

Poziv ove procedure je iz nekog drugog makroa, uz zadavanje potrebnih parametara. Npr. za aktivni list i redove od 12 do 100
Code:

Sub Test()
    ToValue ActiveSheet, 12, 100
End Sub

Citat:
...a cjelu radnu knjigu pospremila bi dajući joj naziv po podacima spojenim iz dvije ćelija a to su uvijek ćelija B4 i G4. Putanja pospremanja bi bila C:\Razno\..C4+G4.xls

Za čuvanje radne sveske, pod novim imenom koristi se metod SaveAs (za to je već bilo dosta primera na forumu). Prethodn je potrebno "pripremiti" naziv pod kojim treba sačuvati radnu svesku. Npr:
Code:

 NazivSveske = "C:\Razno\" & Trim(ActiveSheet.Range("C4").Text) & Trim(ActiveSheet.Range("G4").Text)

Trim je ovde da obriše eventualne blankove višak za svaki slučaj. To možemo da ubacimo u prethodni makro, tako da spojimo ove dve stvari koje si tražila.
Code:

Sub Test()
    Dim NazivSveske As String
    ToValue ActiveSheet, 12, 100
    NazivSveske = "C:\Razno\" & Trim(ActiveSheet.Range("C4").Text) & Trim(ActiveSheet.Range("G4").Text)
    ActiveWorkbook.SaveAs NazivSveske
End Sub


Nije to loše Rembrante, samo što ne bi dodao još malo boje?
 
Odgovor na temu

Sudarica

Član broj: 119175
Poruke: 209
*.dialin.iskon.hr.



Profil

icon Re: [Excel] sprečavanje mjenjanja podataka novim unosom u tabelu05.08.2007. u 19:05 - pre 203 meseci
Hvala velika
konačno uspjela

Pozdrav
 
Odgovor na temu

Sudarica

Član broj: 119175
Poruke: 209
*.dialin.iskon.hr.



Profil

icon Re: [Excel] sprečavanje mjenjanja podataka novim unosom u tabelu15.12.2007. u 17:26 - pre 199 meseci
Vidim da sam pogrešila i krivo objasnila ono što meni treba. Ovo do sada je radilo dobro, međutim nisam dobro objasnila za PasteSpecial Paste:=xlPasteValues. To je tabele u kojoj se popunjene kolone za određeno vremensko razdoblje. Znači i redovi za mjesece koji još nisu popunjeni unosom ali su ispunjeni formulama. Ja bi ustvari htjela da mi naredba bude "Kopiraj samo vrijednost za sve što je veće od 0". Na taj način bi izbjegla brisanje formula za redove u kojima nemam još unešene podatke i gdje mi je trenutni rezultat 0. Neznam da li sam sada dobro objasnila. Ali formule u nepopunjenim redovima moraju ostati. Ako je red popunjen onda je rezultat formule veći od 0.


Pozdrav
 
Odgovor na temu

Jpeca
Predrag Jovanović
poslovni analitičar
Gowi
Pančevo

Moderator
Član broj: 25683
Poruke: 2268
212.200.27.*

Sajt: www.gowi.rs


+109 Profil

icon Re: [Excel] sprečavanje mjenjanja podataka novim unosom u tabelu17.12.2007. u 08:19 - pre 199 meseci
Možeš da kopiraš red po red u samog sebe po vrednosti ukoliko je ispunjen uslov. Ovo nije baš efikasno rešenje, ali bi trebalo da radi.
Dakle
Code:

Sub ToValueUslov(sh As Worksheet, rwStart As Long, rwEnd As Long)
'   Pretvara sve formula u zadatom listu sh
'   u redovima od rwStart do rwEnd u vrednosti
'   prema zadatom uslovu 
' P. Jovanovic za elitesecurity forum
Dim r As Long
For r = rwStart to rwEnd 
   if  sh.Cells(r,4).Value  > 0 Then  ' Ovde zadaj uslov 
                                             ' kad treba da se formule pretvore u vrednosti
      sh.Rows(r).Copy
      sh.Cells(r, 1).PasteSpecial Paste:=xlPasteValues
   End if 
Next r 
Application.CutCopyMode = False
End Sub


For r = rwstart to rwEnd

Next r
Rešenje koje bi ja primenio nije tako direktno. Napravio bi pomoćnu kolonu u kojoj bi bila formula IF(
Nije to loše Rembrante, samo što ne bi dodao još malo boje?
 
Odgovor na temu

[es] :: Office :: Excel :: [Excel] sprečavanje mjenjanja podataka novim unosom u tabelu

[ Pregleda: 2734 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.