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

Funkcija za umetanje reda sa jednim uslovom

[es] :: Office :: Excel :: Funkcija za umetanje reda sa jednim uslovom

[ Pregleda: 1668 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

neptuncokg
Predrag M
racunovodja
Kragujevac

Član broj: 230353
Poruke: 326
93.87.98.*



+9 Profil

icon Funkcija za umetanje reda sa jednim uslovom29.10.2009. u 01:30 - pre 176 meseci
Posle silnog truda ne uspeva mi da ispisem funkciju za sledeci problem:
Ako u polju "A28" postoji podatak (datum), onda ceo red "28" (obojen plavo) treba da dodje na mesto reda "20", s tim da se izbrisu svi redovi ciji datum u "A" je veci od datuma "A28". Drugim recima, da red "28" postane zadnji red u dokumentu. U prilogu saljem "Amort1" - pre funkcije, i "Amort2" - kako bi trebalo da izgleda rezultat. I jos nesto. Sve vreme govorim o FUNKCIJI, a ne o MAKROU, jer se ne zna kada ce da se pojavi podatak u polju "A28". Mozda gresim.
Unapred se zahvaljujem na svakoj pomoci. Pozdrav
Prikačeni fajlovi
 
Odgovor na temu

timmy
Jovan Timotijevic

Moderator
Član broj: 37087
Poruke: 634

Sajt: www.e-tim.net


+89 Profil

icon Re: Funkcija za umetanje reda sa jednim uslovom29.10.2009. u 06:24 - pre 176 meseci
Nije funkcija vec mora da bude procedura - makro na dogadjaj Worksheet Change koji motri samo na datu celiju A28.

- Ako dodje do promene u celiji A28
- Pocevsi od A16 proveravaj datum tj. da li je veci od A28
- Ako jeste obrisi sve redove od trenutnog do 27.

To bi trebalo da bude dovoljno...

Pozdrav
 
Odgovor na temu

neptuncokg
Predrag M
racunovodja
Kragujevac

Član broj: 230353
Poruke: 326
93.87.98.*



+9 Profil

icon Re: Funkcija za umetanje reda sa jednim uslovom30.10.2009. u 00:59 - pre 176 meseci
Probao sam nekoliko varijanti, ali ne ide. Ova mi se ucinila najprihvatljivom, ali ni ona ne daje rezultat:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)

Dim Prodaja As Integer
Prodaja = Range("A28").Value
If Prodaja > 0 Then

Range("A18:A27").Select
For Each Item In Selection
If Range(Item) > Prodaja Then
With Item
 .Clear
    
    Range("A28").Select
End With
End If
End If
Next Item
End Sub


Hteo sam da za pocetak izbrisem bar polja u "A" koja su veca od "A28", pa posle da pokusam cele redove, ali ni ovo ne radi. S.O.S. Hvala unapred.


Edit: Formatiranje

[Ovu poruku je menjao timmy dana 30.10.2009. u 11:12 GMT+1]
 
Odgovor na temu

timmy
Jovan Timotijevic

Moderator
Član broj: 37087
Poruke: 634

Sajt: www.e-tim.net


+89 Profil

icon Re: Funkcija za umetanje reda sa jednim uslovom30.10.2009. u 10:11 - pre 176 meseci
Probaj sa

Code:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim l As Long
    If Target.Address = "$A$28" Then
        l = 20
        Do While l < 28 And Cells(l, 1) <= Cells(28, 1)
            l = l + 1
        Loop
        If l < 28 Then
            Rows(l & ":27").Select
            Selection.Delete Shift:=xlUp
            Range("A" & l).Select
        End If
    End If
End Sub


Pozdrav
 
Odgovor na temu

neptuncokg
Predrag M
racunovodja
Kragujevac

Član broj: 230353
Poruke: 326
93.87.98.*



+9 Profil

icon Re: Funkcija za umetanje reda sa jednim uslovom30.10.2009. u 12:35 - pre 176 meseci
Bas sam bio blizu ! Hvala puno, ovo je vise od pomoci. Program koji trenutno pravim je u jos u "trial" fazi, pa se javlja sledeca situacija: Kad macro odradi svoje, kako sam hteo, ne mogu vise da se vratim na "pocetnu poziciju", tj da ga ponistim zbog nekih drugih podesavanja. A ceo postupak se odvija u 20 sheetova. Pitanje glasi - moze li se nekom jednostavnim naredbom (macroom) ponistiti prethodna akcija, tj macro? Drugim recima, postoji li uopste u VBA neki "UNDO" za odradjeni macro, ili mora da se raspisuje nova procedura za povratak na prethodno stanje? Pozdrav
 
Odgovor na temu

neptuncokg
Predrag M
racunovodja
Kragujevac

Član broj: 230353
Poruke: 326
93.87.98.*



+9 Profil

icon Re: Funkcija za umetanje reda sa jednim uslovom30.10.2009. u 14:56 - pre 176 meseci
Sad primetih da negde postoji problem u prici. Naime, procedura ne pobrise uvek sve redove koje treba. U primeru koji saljem datum 25.10.08 (iz A28) je ispod 31.12.08, tj. nije se obrisao 17. red, a trebalo bi. Pobrisani su redovi sa 31.12.09, 31.12.10 i 31.12.11. ali 31.12.08. - NIJE (?) Sva polja su podesena na Date/Serbian Latin. Nadam se da ne smaram previse.
Prikačeni fajlovi
 
Odgovor na temu

timmy
Jovan Timotijevic

Moderator
Član broj: 37087
Poruke: 634

Sajt: www.e-tim.net


+89 Profil

icon Re: Funkcija za umetanje reda sa jednim uslovom30.10.2009. u 19:02 - pre 176 meseci
Na osnovu prve dve slike koje si postavio dalo se zakljuciti da su vrednosti u koloni A sortirane, pa sam prema tome i napravio funkciju koja cim pronadje prvi veci datum obrise sve sto se nalazi ispod.

Pozdrav
 
Odgovor na temu

neptuncokg
Predrag M
racunovodja
Kragujevac

Član broj: 230353
Poruke: 326
93.87.98.*



+9 Profil

icon Re: Funkcija za umetanje reda sa jednim uslovom30.10.2009. u 22:30 - pre 176 meseci
Pa i jesu sortirane, i sve je o.k. Samo sam u tvom codu, u delu
...If Target.Address = "$A$28" Then
1 = 18,
promenio na
1=20, jer ukupno kontrolise 20 redova.

I sve radi kako treba. Jos jedanput hvala i pozdrav
 
Odgovor na temu

[es] :: Office :: Excel :: Funkcija za umetanje reda sa jednim uslovom

[ Pregleda: 1668 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

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